题目描述:
Leetcode
解题思路:
遍历整个矩阵 超时
二分法(没试过)
参考的解题思路:
因为该矩阵行列都是升序排列,因此可以先判断target是否小于目前行的最大列,如果是则说明target可能存在于该列对应的行中;若遍历该列到target大于对应的数,说明该行不可能存在目标target,row++(因为大小是升序)。
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int m = matrix.size(), n = matrix[0].size();
if(m==0||n==0)
return false;
int row = 0, col = n - 1;
while(row<m&&col>=0){
if(matrix[row][col]==target)
return true;
else if(matrix[row][col]>target)
col--;
else
row++;
}
return false;
}
};