搜索二维矩阵
  编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。
示例:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true
 1
2
2
/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
var searchMatrix = function(matrix, target) {
    let l = 0
    let r = matrix.length - 1
    let mid
    while(l <= r) {
        mid = Math.floor((l + r)/2)
        if(target > matrix[mid][0]) {
            l = l + 1
        }else if (target < matrix[mid][0]) {
            r = r - 1
        } else {
            return true
        }
    }
    if(mid !== 0) {
        return matrix[mid].includes(target) || matrix[mid - 1].includes(target)
    } else {
        return matrix[mid].includes(target)
    }
    
};
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/search-a-2d-matrix