编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
方法一:直接遍历,效率低
方法二:从右上角开始,遇到的值比目标值大则向下搜索,遇到比目标值小的值则向左搜索。
代码如下
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int row = 0;
int col = matrix[0].length-1;
while(row != matrix.length && col != -1){
if(matrix[row][col] == target){
return true;
}
else if(matrix[row][col] > target){
col --;
}
else if(matrix[row][col] < target){
row++;
}
}
return false;
}
}