Leetcode 240. 搜索二维矩阵 II

心路历程:

这道题很容易被二分搜索给迷惑,但是仔细看会发现这道题从矩阵的右上角或者左下角来看的话这是一个二分搜索树。

以右上角为例,每个元素的右子树都比它大,左子树都比它小,并且这个顺序可以迭代。因此这个问题变成了从根节点就开始递归搜索的问题。由于值已经按照二维数组给出了,所以只需要控制数组的索引变化来遍历树即可。

注意的点:

1、while循环的判断条件可以用是否在边界内

解法:二叉搜索树建模+双指针

python 复制代码
class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        n, m = len(matrix), len(matrix[0])
        i, j = 0, m-1
        last_value = matrix[i][j]
        while 0 <= i < n and 0 <= j < m:
            if matrix[i][j] == target: return True
            elif matrix[i][j] > target:  j -= 1
            elif matrix[i][j] < target: i += 1  # 为了便于阅读没用else
        return False
相关推荐
点云SLAM14 小时前
C++ 常见面试题汇总
java·开发语言·c++·算法·面试·内存管理
叙白冲冲14 小时前
哈希算法以及面试答法
算法·面试·哈希算法
YuTaoShao15 小时前
【LeetCode 每日一题】1277. 统计全为 1 的正方形子矩阵
算法·leetcode·矩阵
古译汉书15 小时前
嵌入式铁头山羊stm32-ADC实现定时器触发的注入序列的单通道转换-Day26
开发语言·数据结构·stm32·单片机·嵌入式硬件·算法
野犬寒鸦15 小时前
力扣hot100:相交链表与反转链表详细思路讲解(160,206)
java·数据结构·后端·算法·leetcode
阿昭L15 小时前
leetcode两数之和
算法·leetcode
周树皮不皮15 小时前
【Leetcode100】算法模板之二叉树
算法
无名客016 小时前
sentinel限流常见的几种算法以及优缺点
算法·sentinel·限流
Lris-KK16 小时前
【Leetcode】高频SQL基础题--1164.指定日期的产品价格
sql·leetcode
Moonbit17 小时前
月报Vol.03: 新增Bitstring pattern支持,构造器模式匹配增强
后端·算法·github