一、题目
编写一个高效的算法来搜索 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
};
五、总结
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47450807/article/details/123581002
内容来源于网络,如有侵权,请联系作者删除!