先对行进行二分查找,最后的lowR
是第一个大于target所在行的行数,因此target
所在行应该在lowR-1
,如果lowR=0
,由于没有-1
行,所以不存在target
,要返回false
。文章来源:https://www.toymoban.com/news/detail-796610.html
特别注意程序中及时return
.文章来源地址https://www.toymoban.com/news/detail-796610.html
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
// boolean ans = false;
int lowR = 0, highR = matrix.length, lowC = 0, highC = matrix[0].length;
while (lowR < highR) {
int midR = (lowR + highR) / 2;
if (target == matrix[midR][0]) {
// ans = true;
return true;
} else if (target > matrix[midR][0]) {
lowR = midR + 1;
} else {
highR = midR;
}
}
if (lowR == 0) return false;
while (lowC < highC) {
int midC = (lowC + highC) / 2;
if (target == matrix[lowR - 1][midC]) {
// ans = true;
return true;
} else if (target > matrix[lowR - 1][midC]) {
lowC = midC + 1;
} else {
highC = midC;
}
}
return false;
}
}
到了这里,关于74. 搜索二维矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!