力扣-74-搜索二维矩阵
思路是:写一个二分查找,然后把一维下标转化为二维下标
注意循环条件<=,可以兼容只有一个元素的情况
index = (left + right) / 2;这里分子加不加 1 都能过
public boolean searchMatrix(int[][] matrix, int target) {
int m = matrix.length;
int n = matrix[0].length;
int left = 0;
int right = m * n-1;
int index, row, col;
while (left <= right) {
index = (left + right + 1) / 2;
row = index / n;
col = index % n;
if (target == matrix[row][col]) return true;
else if (target > matrix[row][col]) {
left = index + 1;
} else {
right = index - 1;
}
}
return false;
}

浙公网安备 33010602011771号