原题:
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int m=matrix.size();
int n=matrix[0].size();
int i=m;
for(i=m-1;i>=0;i--){
if(matrix[i][0]<=target)
break;
}
if(i<0)
return false;
int begin=0;
int end=n-1;
while(begin<=end){
if((end-begin)<=1){
if((matrix[i][begin]!=target)&&(matrix[i][end]!=target))
return false;
return true;
}
int middle=begin+(end-begin)/2;
if(matrix[i][middle]==target)
return true;
else if(matrix[i][middle]<target)
begin=middle;
else
end=middle;
}
}
};
需要注意的是:
矩阵的行和列;