根据题解,行依次递增,列依次递增,可以考虑从端点开始遍历,一般考虑左下或右上角开始,(因为左上角开始,数字依次增大,无法处理列变量;右下角同理)
public boolean Find(int target, int [][] array) {
if(array == null || array.length == 0 || array[0].length == 0){
return false;
}
//从右上角开始
int row = 0, col = array[0].length -1;
while(row < array.length && col >= 0){
if(array[row][col] == target){
return true;
}else if(array[row][col] > target){
//从右往左遍历
col--;
}else {
//从上往下遍历
row++;
}
}
return false;
}
}