题目:
分析:
让我痛过的题目
代码:
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
//大于等于tar的第一个元素
if(matrix.size()==0||matrix[0].size()==0) return 0;
if(matrix[matrix.size()-1][matrix[0].size()-1]<target) return 0;
int a=0,b=matrix.size()-1;
int ans;
while(a<=b)
{
int c=(a+b)/2;
if(matrix[c][matrix[0].size()-1]>=target)
{
ans=c;
b=c-1;
}
else{
a=c+1;
}
}
//大于等于tar的第一个元素。
int c=lower_bound(matrix[ans].begin(),matrix[ans].end(),target)-matrix[ans].begin();
if(c==matrix[0].size()) return 0;
return matrix[ans][c]==target;
}
};