二维数组的查找
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
矩阵是有序的,利用递增规律。可以从右上角(左下角)开始找
- 当
target
小于当前元素array[r][c]
时,target
必在当前元素所在左边,即将列下标c--
. - 当
target
大于当前元素array[r][c]
时,target
必在当前元素所在下边,即将行下标r++
.
public class Solution {
public boolean Find(int target, int [][] array) {
int row = array.length;
if(row == 0){
return false;
}
int clo = array[0].length;
if(clo == 0){
return false;
}
int r = 0;
int c = clo-1;
while(r < row && c >= 0){
if(array[r][c] < target){
r++;
} else if(array[r][c] > target){
c--;
} else {
return true;
}
}
return false;
}
}