74 Search a 2D Matrix
Java
将原先二维矩阵转换成一维的响亮进行处理,实现二分搜索。
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix.length == 0)
return false;
int rowCount = matrix.length;
int colCount = matrix[0].length;
int left = 0;
int right = rowCount * colCount - 1;
while(left < right){
int mid = left + (right - left) / 2;
int row = mid / colCount;
int col = mid % colCount;
if (target == matrix[row][col])
return true;
else if (target < matrix[row][col])
right = mid;
else
left = mid + 1;
}
if(colCount > 0 && matrix[left / colCount][left % colCount] == target)
return true;
if(colCount > 0 && matrix[right / colCount][right % colCount] == target)
return true;
return false;
}
}