标签:art get line size else pos ica == ted
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix == null || matrix.length==0 || matrix[0].length==0)
return false;
int l = 0;
int r = matrix.length-1;
while(l<=r)
{
int mid = (l+r)/2;
if(matrix[mid][0] == target) return true;
if(matrix[mid][0] > target)
{
r = mid-1;
}
else
{
l = mid+1;
}
}
int row = r;
if(row<0)
return false;
l = 0;
r = matrix[0].length-1;
while(l<=r)
{
int mid = (l+r)/2;
if(matrix[row][mid] == target) return true;
if(matrix[row][mid] > target)
{
r = mid-1;
}
else
{
l = mid+1;
}
}
return false;
}二分查找是面试中出现频率不低的问题,可是非常少直接考二分查找。会考一些变体,除了这道题。还有Search
in Rotated Sorted Array和Search
for a Range。思路事实上差点儿相同,略微变化一下就可以。有兴趣能够练习一下哈。Search a 2D Matrix -- LeetCode
标签:art get line size else pos ica == ted
原文地址:http://www.cnblogs.com/brucemengbm/p/7337377.html