题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
链接:https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
解题思路
由于每行(每列)都是递增的,所以可以使用从右上往左下逼近的方法找到这个值。
当前值大于target则左移一列,小于target则下移一行
public class Solution {
public boolean Find(int target, int [][] array) {
boolean ifFound = false;
int row = array.length;
int column = array[0].length;
if (row >= 0 && column >= 0) {
int ro = 0;
int col = column-1;
while (ro < row && col >= 0) {
if (array[ro][col] > target) {
col--;
} else if (array[ro][col] == target) {
ifFound = true;
break;
} else ro++;
}
}
return ifFound;
}
}