leetcode240.搜索二维矩阵
leetcode240.搜索二维矩阵
题目
编写一个高效的算法来搜索 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 i_pre=0
let j_pre=0
let i_last = matrix.length-1
let j_last = matrix[0].length-1
while(i_pre<=i_last&&j_pre<=j_last){
//首先缩小last坐标
while(i_last>=i_pre&&matrix[i_last][j_pre]>=target){
if(matrix[i_last][j_pre]==target){
return true
}
i_last--
}
while(j_last>=j_pre&&matrix[i_pre][j_last]>=target){
if(matrix[i_pre][j_last]==target){
return true
}
j_last--
}
//缩小pre
i_pre++
j_pre++
}
return false
};