思路:
非常有技巧性的查找,因为条件苛刻:每一行都升序,每一列也都生序。
从右上角开始查找:
(1)如果比target大,该列都比target大,左移;
(2)如果比target小,该行都比target小,下移;
(3)找到返回true;
public class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix == null || matrix.length == 0 || matrix[0].length == 0) return false;
int i = 0, j = matrix[0].length - 1;
while(i < matrix.length && j >= 0) {
if(matrix[i][j] > target) {
--j;
}else if(matrix[i][j] < target) {
++i;
}else {
return true;
}
}
return false;
}
}