题解 | #二维数组中的查找#
二维数组中的查找
http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
public class Solution {
public boolean Find(int target, int [][] array) {
// 无效输入:空指针
if(array == null){
return false;
}
// 整体思路:选择右上角的数与target进行比较,大于则去掉这一列,小于则去掉这一行
// 时间O(n),空间O(1)
int row = 0;
int column = array[0].length - 1;
while(row < array.length && column >= 0){
if(array[row][column] == target)
return true;
else if(array[row][column] < target)
row ++;
else if(array[row][column] > target)
column --;
else
return false;
}
return false;
}
}