编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:
每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
这道题关键是最右边的数来找上确界,最左边的数找下确界。
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
if(matrix.empty()) return 0;
int m = 0;
int n = matrix[0].size()-1;
while(m<matrix.size() && n>=0)
{
if(target == matrix[m][n]) return true;
else if(target > matrix[m][n]) m++;
else if(target < matrix[m][n]) n--;
}
return false;
}
};