这个问题的主要问题考察两点:
1.考虑数组为"空"、target直接小于array[0][0]或者target直接大于array[row-1][col-1]
2.考虑数组的遍历,在这里主要有两种情况:
1.从数组的右上角开始遍历
2.从数组的左下角开始遍历
我是从左上角开始遍历:
public class Solution {
public boolean Find(int target, int [][] array) {
int row = array.length;
int col = array[0].length;
if(row == 0 || col == 0)
return false;
if(target < array[0][0] || target > array[row-1][col-1])
return false;
int i = 0;
int j = col-1;
while (i<row && j>=0){
if(array[i][j] > target)
j--;
else if(array[i][j] < target)
i++;
else{
return true;
}
}
return false;
}
}