Skip to content

Latest commit

 

History

History
74 lines (48 loc) · 1.46 KB

File metadata and controls

74 lines (48 loc) · 1.46 KB

240. 搜索二维矩阵 II

相关标签

  • 数组
  • 二分查找
  • 分治
  • 矩阵

问题描述

  1. 搜索二维矩阵 II - 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

 

示例 1:

[https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/11/25/searchgrid2.jpg]

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5 输出:true

示例 2:

[https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2020/11/25/searchgrid.jpg]

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20 输出:false

 

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= n, m <= 300
  • -109 <= matrix[i][j] <= 109
  • 每行的所有元素从左到右升序排列
  • 每列的所有元素从上到下升序排列
  • -109 <= target <= 109

题解

function searchMatrix(matrix: number[][], target: number): boolean {
    const col = matrix.length 
    const row = matrix[0].length 
    let x = 0;
    let y = row - 1

    while(x < col && y >= 0 ) {
        const isEqual = target === matrix[x][y]

        if(isEqual) {
            return true
        } else if(target > matrix[x][y]) {
            x++
        } else {
            y--
        }
    }

    return false
};