这个题目思路就是从最左下角的元素进行对比,大于目标值就向上移动,小于目标值就向右移动。
但是关键是循环过程是把数组越界的条件作为while循环的条件,而不是用对比结果作为循环条件,当然也可以,但是就要考虑空二维数组的特殊情况,在while循环外多加一个判断,增加了代码量,所以还是用数组越界条件巧妙一点。
public class Solution {
public boolean Find(int target, int [][] array) {
int len = array.length;
int len_1 = array[0].length;
int col =0;
int raw = len-1;
while(raw>=0 && col <= len_1-1){
if(array[raw][col] > target){
raw--;
}else if(array[raw][col] < target){
col++;
}
else{
return true;
}
}
return false;
}
}