

java
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix == null || matrix.length == 0 || matrix[0].length == 0){
return false;
}
int m = matrix.length;
int n = matrix[0].length;
//初始搜索位置
int row = 0;
int col = n -1;
//在矩阵中搜索
while(row < m && col >= 0){
if(matrix[row][col] > target){
col--;
}else if(matrix[row][col] < target){
row++;
}else if(matrix[row][col] == target){
return true;
}
}
return false;
}
}
解题思路:从右上角开始找,可以将这个矩阵看作是一个二叉搜索树,往左走小于该节点,往下走大于该节点。