搜索二维矩阵II
问题
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
示例 1:
输入: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:
输入: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
答案
js
var searchMatrix = function(matrix, target) {
let right=matrix[0].length-1;
let top=0;
while(top<=matrix.length-1&&right>=0){
if(target==matrix[top][right]){
return true;
}
else if(target>matrix[top][right]){
top++;
}
else{
right--;
}
}
return false;
};
扩展
从右上角开始遍历,目标小往左找,目标大往下找