原文

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。

每列的元素从上到下升序排列。

初始搜索位置设置在右上角

  1. 如果跟target相等,return true
  2. 比target大,砍掉一列
  3. 比target小,砍掉一行 直到砍光或者找到
/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
var searchMatrix = function(matrix, target) {
    const m = matrix.length;
    const n = matrix[0].length;
    let a = 0;
    let b = n - 1;
    while (a < m && b > -1) {
        if (matrix[a][b] === target) {
            return true;
        }
        if (matrix[a][b] > target) {
            b--;
        } else {
            a++;
        }
    }
    return false;
};

上一篇 下一篇