Leetcode刷题(第240题)——搜索二维矩阵II

x33g5p2x  于2022-03-18 转载在 其他  
字(0.7k)|赞(0)|评价(0)|浏览(337)

一、题目

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

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

二、示例

输入: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

输入: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

三、思路
本题的二维数组存在规律,此时可以从右上角进行查看,如果比当前的值大,则向下移动,如果比当前的值小,则向左移动。
四、代码展示

/**
 * @param {number[][]} matrix
 * @param {number} target
 * @return {boolean}
 */
var searchMatrix = function(matrix, target) {
    let row = matrix.length
    let col = matrix[0].length
    let x = col - 1
    let y = 0
    while(x >= 0 && y < row) {
        if(matrix[y][x] === target) {
            return true
        }else if(matrix[y][x] > target) {
            x--
        }else {
            y++
        }
    }
    return false
};

五、总结

相关文章