
public class LeetCode74 {
public boolean searchMatrix(int[][] matrix, int target) {
int m = matrix.length;
int n = matrix[0].length;
// 暴力
// for (int i = 0; i < m; i++){
// for (int j = 0; j < n; j++){
// if (matrix[i][j] == target) return true;
// }
// }
// return false;
// 二分
int left = 0, right = m * n - 1;
while (left <= right){
int mid = (left + right) / 2;
int x = mid / n;
int y = mid % n;
if (matrix[x][y] == target) return true;
else if (matrix[x][y] > target) right = mid - 1;
else left = mid + 1;
}
return false;
}
}