74.搜索二维矩阵
小于 1 分钟
74.搜索二维矩阵
/*
* @lc app=leetcode.cn id=74 lang=typescript
*
* [74] 搜索二维矩阵
*/
// @lc code=start
function searchMatrix(matrix: number[][], target: number): boolean {
let l = 0,
r = matrix.length - 1;
while (l <= r) {
let mid = Math.floor((l + r) / 2);
let currentRow = matrix[mid];
if (currentRow[currentRow.length - 1] < target) {
l = mid + 1;
} else if (currentRow[0] > target) {
r = mid - 1;
} else {
// target在当前行
let l1 = 0,
r1 = currentRow.length - 1;
while (l1 <= r1) {
let mid1 = Math.floor((l1 + r1) / 2);
if (currentRow[mid1] > target) {
r1 = mid1 - 1;
} else if (currentRow[mid1] < target) {
l1 = mid1 + 1;
} else {
return true;
}
}
break;
}
}
return false;
}
console.log(
searchMatrix(
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 60],
],
6
)
);
// @lc code=end
Loading...
