原题地址
题目内容
题目分析
这个矩阵从左到右逐渐增大,从上到下也是逐渐增大的。先从最右列第一个数开始比较,如果target大于它,说明target在这一列,否则往左查找,比较左边一列第一个数,以此类推。
确定列数后开始向下寻找行数即可,如果找不到则返回结果fasle。
代码实现
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
if(matrix.size() == 0){
return false;
}
int row = matrix.size();
int col = matrix[0].size();
int i = 0,j = col-1;
while(i < row && j >= 0){
if(matrix[i][j] == target) return true;
else if(matrix[i][j] > target){
j--;
}else i++;
}
return false;
}
};