题目地址: 链接
思路: 双重二分(横轴和纵轴)
js
/**
* @param {number[][]} matrix
* @param {number} target
* @return {boolean}
*/
var searchMatrix = function(matrix, target) {
let [n, m] = [matrix.length, matrix[0].length];
let [l1, r1] = [0, n];
while(l1 < r1) {
let mid = (l1 + r1) >> 1;
if( matrix[mid][m - 1] >= target ) r1 = mid;
else l1 = mid + 1;
}
if(l1 >= n) return false;
let [l2, r2] = [0, m];
while(l2 < r2) {
let mid = (l2 + r2) >> 1;
console.log(l1, mid);
if(matrix[l1][mid] >= target) r2 = mid;
else l2 = mid + 1;
}
return matrix[l1][l2] == target ? true : false;
};