这道题巧妙之处在于利用了右上角的数字来做对比
如果比右上角的数字大,说明最右边的一列可以不要了,如果比右上角的数字小,说明最上面的一行可以不要了。
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
if(!matrix.size() || !matrix[0].size()) return false;
int r = 0, c = matrix[0].size() - 1;
while(r < matrix.size() && c >= 0)
{
if(matrix[r][c] == target) return true;
else if(matrix[r][c] < target) r++;
else c--;
}
return false;
}
};