https://leetcode.cn/problems/search-a-2d-matrix
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。
思路:
将矩阵展开成一维数组,再利用二分法进行查找:
var searchMatrix = function(matrix, target) {
let origin = matrix.flat();
let left = 0; right = origin.length - 1;
while (left < right) {
let middle = left + ( (right - left) >> 1);
if (origin[middle] >= target) {
right = middle;
} else {
left = middle + 1;
}
}
return origin[left] === target;
};