LeetCode hot100-21

240. 搜索二维矩阵 II

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

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

这题很神奇,因为暴力解法都可以通过

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[0].length; j++) {
                if (matrix[i][j] == target) {
                    return true;
                }
            }
        }
        return false;
    }
}

官方解法三
我比较喜欢Z字形这种解法。为什么选择从右上角出发。其实右上角或者左下角出发都可以。但是左上角和右下角就不行。因为需要确定当前数字不等于target时往哪边走是对的。比如从左上角出发的话,如果当前的数小于target,现在需要找更大的一个数。那往右走和往下走都是变大,就不知道应该怎么走了。但是如果从右上角开始的话,需要更大的数就往下走,需要更小的数就往左走,完全可以确定方向。

注意while条件对于y来说是>=0不是>0.数组是不会越界的,因为当y=0时如果满足等于target就跳出了,如果大于target,y变成-1后进不了循环,自然不会出现matrix[x][-1]的情况。反而while条件y不取等于会漏掉matrix[x][0]的情况。

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length, n = matrix[0].length;
        int x = 0, y = n - 1;
        while (x < m && y >= 0) {
            if (matrix[x][y] == target) {
                return true;
            }
            if (matrix[x][y] > target) {
                --y;
            } else {
                ++x;
            }
        }
        return false;
    }
}

作者:力扣官方题解
链接:https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/1062538/sou-suo-er-wei-ju-zhen-ii-by-leetcode-so-9hcx/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关推荐

  1. LeetCodehot100

    2024-04-04 14:46:04       38 阅读
  2. 一个月速刷leetcodeHOT100 day02

    2024-04-04 14:46:04       16 阅读
  3. 一个月速刷leetcodeHOT100 day 01

    2024-04-04 14:46:04       43 阅读
  4. 一个月速刷leetcodeHOT100 day03

    2024-04-04 14:46:04       11 阅读
  5. 一个月速刷leetcodeHOT100 day08 两道DP题 一道子串

    2024-04-04 14:46:04       10 阅读
  6. LeetCode hot100-21

    2024-04-04 14:46:04       16 阅读
  7. 面试经典150题(21-26)

    2024-04-04 14:46:04       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 14:46:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 14:46:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 14:46:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 14:46:04       20 阅读

热门阅读

  1. 3459: 【PY】A+B问题

    2024-04-04 14:46:04       15 阅读
  2. python中map()函数的使用

    2024-04-04 14:46:04       14 阅读
  3. 【数据结构与算法】动态规划

    2024-04-04 14:46:04       12 阅读
  4. Day20.

    2024-04-04 14:46:04       12 阅读
  5. LocalDateTime 前后端传输问题

    2024-04-04 14:46:04       11 阅读
  6. 从零开始学RSA:低加密指数攻击2

    2024-04-04 14:46:04       11 阅读