二维数组中的查找
题目描述
在一个二维整数中(每个一维整数的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序进行排序。请完成一个函数,输入这样的一个二维尺寸和一个整数,判断数组中是否包含该整数。
思路描述
我们利用从左到向左向右,从上到下递增。特点的
我们从左下角开始查找。
如果目标值大于当前值,值当前则向右移动注意防止越界,如果越界,则说明没有找到,返回假
如果目标值小于当前值,当前值则向上移动。注意防止越界,如果越界,则说明没有找到,返回假
否则说明找到了返回真。
代码实现
public boolean Find(int target, int [][] array) {
int m = array.length;
int n = array[0].length;
int row = m - 1;
int col = 0;
while(row >= 0 && col < n){
if(target > array[row][col]){
col++;
} else if(target < array[row][col]) {
row--;
} else {
return true;
}
}
return false;
}
大家有好的想法和思路欢迎和博主一起探讨,欢迎大家指出博主有不足的地方,欢迎评论,点赞,收藏!
我们大家共同进步!
博主的github 中整理了相关的JDK1.8的源码浅析
JDK 1.8源码浅析
以及博主所刷过的算法的解析,有兴趣可以去踩踩。
算法解析
另外附上博主的 github链接,还有一个人脸识别项目可供借鉴
人脸识别项目