题意:
有一个矩阵,每行有序,每列也有序。判断一个数target是否存在于此矩阵中。
思路:
从右上角开始,如果当前数字<target,则该行作废。若当前数字>target,该列作废。这样下去要么找到,要么到达边界退出。
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int n=matrix.size(), m=matrix[].size();
int i=, j=m-;
while(i<n && j>=)
{
if(target==matrix[i][j]) return true;
if(target>matrix[i][j]) i++;
else j--;
}
return false;
}
};
AC代码