您的位置:首页 > 其它

leetcode_Search a 2D Matrix

2016-05-26 11:29 411 查看
题意:在一个排序好的二维数组里,找出指定元素

注意:二分查找的“模板”,每一个细节都要注意。 bool searchMatrix(vector<vector<int>>& matrix, int target) {
int m,n,i,j,k,left=0,right=0,middle=0;
if(matrix.size()==0) return false;
m=matrix.size();
n=matrix[0].size();
left=0;
right=matrix.size()-1;
while(left<right)
{
middle=(left+right)/2;
if(matrix[middle][0]<=target&&matrix[middle+1][0]>target) break;
if(matrix[middle][0]<target) left=middle+1;
else right=middle-1;
}
if(left==m-1 ||matrix[left][0]<=target&&matrix[left+1][0]>target) middle=left;
left=0;
right=n-1;
i=middle;
while(left<right)
{
middle=(left+right)/2;
if(matrix[i][middle]==target) return true;
if(matrix[i][middle]<target) left=middle+1;
else right=middle-1;
}
if(matrix[i][left]==target) return true;
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: