240. 搜索二维矩阵 II
1. 题目
240. 搜索二维矩阵 II - 力扣(LeetCode)
2. 解题思路
矩阵满足:每行从左到右递增、每列从上到下递增。
关键观察:取右上角元素 x = matrix[r][c]
:
- 若
x == target
→ 找到; - 若
x > target
→ 这一列下面都 ≥x
,更不可能,因此向左移动(c--
)缩小列; - 若
x < target
→ 这一行左边都 ≤x
,更不可能,因此向下移动(r++
)扩大行。
这样每一步都能排除一整行或一整列,直到越界或找到为止。
3. 代码
3.1. 完整代码
class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length;int n = matrix[0].length;int row = 0;int col = n - 1;while (row < m && col >= 0) {int x = matrix[row][col];if (x == target) {return true;}if (x > target) {col--;} else if (x < target) {row++;}}return false;}
}