
把二维数组展开成一维,发现随着索引增加,值增大,那么其实这就是普通的二分查找
java
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int m=matrix.length,n=matrix[0].length;
int left=0,right=m*n-1;
while(left<=right){
int mid=(right-left)/2+left;
int row=mid/n;
int col=mid%n;
if(matrix[row][col]==target)
return true;
else if(target<matrix[row][col])
right=mid-1;
else
left=mid+1;
}
return false;
}
}