编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:
- 每行的元素从左到右升序排列。
- 每列的元素从上到下升序排列。
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
//特判
if (matrix == null || matrix.length == 0) return false;
//从左下角出发,target大,x++;target小,y--
int x = 0, y = matrix.length - 1;
while (x < matrix[0].length && y >= 0) {
//target大
if (target > matrix[y][x]) x++;
//target小
else if (target < matrix[y][x]) y--;
//找到
else return true;
}
//出了循环还没返回,说明没找数组中
return false;
}
}
思路和74. 搜索二维矩阵
一样,从右上角出发。