240. Search a 2D Matrix II
题目简介
/**
* @param {number[][]} matrix
* @param {number} target
* @return {boolean}
*/
题目要求我们判断在 matrix 中是否能找到 target,如果可以返回 true,否则返回 false
matrix 的有两个特点:
- 所有的行都是从左到右升序排列
- 所有的列都是从上到下升序排列
解题思路
这题一开始我习惯性的从左上角出发,发现要判断的情况很多
但是这题需要我们跳出习惯,需要从右上角出发
这样一来,如果当前元素比 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
};