题目:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

    • 每行的元素从左到右升序排列。
    • 每列的元素从上到下升序排列。

    思路:

    1. 从右上角开始,若val大于target则指针右移,若小于,则说明这一排不可能存在target,指针下移

    image.png

    1. 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
    2. var searchMatrix = function (matrix, target) {
    3. let i = 0, j = matrix[0].length - 1, len = matrix.length
    4. while (i < len && j >= 0) {
    5. let val = matrix[i][j]
    6. console.log(i, j, val);
    7. if (val > target)
    8. j--;
    9. else if (val === target) {
    10. return true
    11. } else if (val < target) {
    12. i++;
    13. }
    14. }
    15. return false
    16. };
    17. console.log(searchMatrix(matrix, target));