当我们要寻找一个数x,首先与最后一行的第一列的数比较。如果发现比这个数小,我们便可以知道这一行都比x大(因为每一列递增),这一行可以排除。这样不断排除直到x比最后一列的数大。同理,然后我们通过比较第一列的最后一行,如果x小,说明这一列都小,删除掉,直到找到正确答案
using namespace std;
class Solution
{
public:
bool searchMatrix(vector<vector<int>>& matrix, int target)
{
int n=matrix.size(),m;
if (n>0) m=matrix[0].size();
else return false;
int i=0,j=m-1;
while(i<=n-1&&j>=0)
{
if (matrix[i][j]>target) j--;
else
if (matrix[i][j]==target) return true;
else
if (matrix[i][j]<target) i++;
}
return false;
}
};