二分
class Solution {
public:
int search(vector<int> vt,int target,bool& tag)
{
int l=0,r=vt.size()-1;
tag=false;
if(target<vt[l])
return -1;
while(l<=r)
{
int mid=(l+r)>>1;
if(vt[mid]<target)
l=mid+1;
else if(vt[mid]>target)
r=mid-1;
else
{
tag=true;
return mid;
}
}
return r;
}
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int n=matrix.size();
vector<int> vi;
for(int i=0;i<n;i++)
vi.push_back(matrix[i][0]);
bool tag=false;
int ind=search(vi,target,tag);
if(tag)
return true;
if(ind==-1)
return false;
search(matrix[ind],target,tag);
return tag;
}
};