题解一:
二叉搜索树:从矩阵右上角观察,结构类似二叉搜索树,因此可以用类似的解法来做。具体做法是双指针从右上角开始,向左下角逐步搜索,如果当前值比目标值大,则向下移动,如果当前值比目标值小,则向左移动。直到找到目标值或指针出界。
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int m = matrix.length;
int n = matrix[0].length;
for (int i = 0, j = n - 1; i < m && j >= 0; ) {
if (matrix[i][j] > target) j--;
else if (matrix[i][j] < target) i++;
else if (matrix[i][j] == target) return true;
}
return false;
}
}