参考题解:https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf
将矩阵旋转45度,可以看作一个二叉搜索树。
假设以左下角元素为根结点,
- 当
target
比root
大的时候,则舍弃当前列,右移一列; - 当
target
比root
小的时候,则舍弃当前行,上移一行; - 否则,两者相等,返回
true
。
class Solution {public boolean searchMatrix(int[][] matrix, int target) {int i = matrix.length - 1, j = 0;while (i >= 0 && j < matrix[0].length) {int root = matrix[i][j];if (root > target) i--;else if (root < target) j++;else return true;}return false;}
}