搜索二维矩阵 II

题解方法

  • 二分查找

二分查找

  • 无法保证每行的第一个整数大于前一行的最后一个整数
  • 只能先遍历行,然后再对行进行二分查找。

核心代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int[] col : matrix) {
int l = 0;
int r = matrix[0].length - 1;

while (l < r) {
int mid = l + r + 1 >> 1;
if (col[mid] <= target) {
l = mid;
} else {
r = mid - 1;
}
}
if (col[l] == target) {
return true;
}
}

题目来源

240. 搜索二维矩阵 II - 力扣(LeetCode) (leetcode-cn.com)