华科不平凡 level
获赞
1857
粉丝
101
关注
29
看过 TA
244
华中科技大学
2021
C++
IP属地:未知
暂未填写个人简介
私信
关注
2020-09-03 16:01
华中科技大学 C++
本篇内容虽多,但有助于系统构建对二分查找的知识体系,如果您还不能闭着眼睛写二分的话,建议仔细看看哦~  二分查找是一个思路很简单、但实现起来有点恼人的算法。正所谓知己知彼,胜乃不怠;知天知地,胜乃不穷,我们先对二分法这个“敌人”做一个简单的分类:  按查找区间分类——闭区间[..]和左闭右开区间[..) 按具体任务分类——寻找特定值、寻找左侧边界和寻找右侧边界  寻找特定值 给定一个有序数组,如[1, 2, 5, 8, 9, 13, 19, 20, 68],查找19的位置: int binarySearch(vector<int> array, int target) { int ...
so_what_xxxx:将操作抽象出来,岂不是更能很好的套用二分 private int[][] matrix=null; private int end; public boolean searchMatrix (int[][] matrix, int target) { // write code here if(matrix==null) return false; if(matrix.length==0) return false; this.matrix=matrix; this.end=matrix.length*matrix[0].length; if(this.end==1) { if(matrix[0][0]==target) { return true; }else { return false; } } return halfsearch(target,1,end); } public int lengthTox(int length) { return (length-1)/this.matrix[0].length; } public int lengthToy(int length) { return length-lengthTox(length)*this.matrix[0].length-1; } public int xyTolength(int x,int y) { return x*this.matrix[0].length+y+1; } public boolean halfsearch(int target,int left,int right) { //边界条件 if(target>this.matrix[lengthTox(right)][lengthToy(right)]||target<this.matrix>this.matrix[lengthTox(mid)][lengthToy(mid)]){ left=mid; } if(target</this.matrix>
0 点赞 评论 收藏
分享
2020-09-03 09:39
华中科技大学 C++
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务