240. Search a 2D Matrix II
2026/1/12大约 1 分钟约 348 字
240. Search a 2D Matrix II
难度: Medium
题目描述
Write an efficient algorithm that searches for a value target in an m x n integer matrix matrix. This matrix has the following properties:
- Integers in each row are sorted in ascending from left to right.
- Integers in each column are sorted in ascending from top to bottom.
Example 1:

Input: matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5 Output: true
Example 2:

Input: matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20 Output: false
Constraints:
m == matrix.lengthn == matrix[i].length1 <= n, m <= 300-109 <= matrix[i][j] <= 109- All the integers in each row are sorted in ascending order.
- All the integers in each column are sorted in ascending order.
-109 <= target <= 109
解题思路
代码实现
解决方案
java
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int row = matrix.length;
int col = matrix[0].length;
int rowIndex = 0;
int colIndex = col - 1;
while (rowIndex < row && colIndex > -1) {
if (matrix[rowIndex][colIndex] == target) {
return true;
} else if (matrix[rowIndex][colIndex] < target) {
rowIndex++;
} else {
colIndex--;
}
}
return false;
}
}