题目:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
- 每行的元素从左到右升序排列。
- 每列的元素从上到下升序排列。
思路:
- 从右上角开始,若val大于target则指针右移,若小于,则说明这一排不可能存在target,指针下移
let 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 = 14
var searchMatrix = function (matrix, target) {
let i = 0, j = matrix[0].length - 1, len = matrix.length
while (i < len && j >= 0) {
let val = matrix[i][j]
console.log(i, j, val);
if (val > target)
j--;
else if (val === target) {
return true
} else if (val < target) {
i++;
}
}
return false
};
console.log(searchMatrix(matrix, target));