240. Search a 2D Matrix II

Leetcode link

题目简介

/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */

题目要求我们判断在 matrix 中是否能找到 target,如果可以返回 true,否则返回 false

matrix 的有两个特点:

  1. 所有的行都是从左到右升序排列
  2. 所有的列都是从上到下升序排列

解题思路

这题一开始我习惯性的从左上角出发,发现要判断的情况很多

但是这题需要我们跳出习惯,需要从右上角出发

这样一来,如果当前元素比 target 小,我们只需要向下找元素;如果当前元素比 target 大,我们只需要向左找元素

Javascript

/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
var searchMatrix = function(matrix, target) {
    const height = matrix.length
    const width = matrix[0].length
    let row = 0
    let col = width - 1

    while(row < height && col >=0) {
        if(matrix[row][col] === target) {
            return true
        }
        if(matrix[row][col] < target) {
            row++
        } else {
            col--
        }
    }
    return false
};

results matching ""

    No results matching ""