只需要将此二维数组视为一维数组,然后对它进行binary search即可。
public class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {
return false;
}
int rows = matrix.length;
int cols = matrix[0].length;
int left = 0;
int right = rows * cols - 1;
while (left <= right) {
int mid = left + (right - left)/2;
int i = mid/cols;
int j = mid%cols;
if (matrix[i][j] == target) {
return true;
} else if (matrix[i][j] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
}