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
相关推荐
hansang_IR35 分钟前
【题解】LC:Z 算法(Z Algorithm)
c++·算法·字符串
范什么特西40 分钟前
回答知识总结02
算法·哈希算法
橘子汽水1681 小时前
Leetcode 230,98:二叉搜索树中第K小的元素,验证二叉搜索树
算法·leetcode·职场和发展
m沐沐1 小时前
【机器学习】DBSCAN聚类算法——原理、参数调优与实战
人工智能·python·深度学习·算法·机器学习·聚类·dbscan
问商十三载1 小时前
GEO优化的6个核心诊断工具,2026年实操版详解
人工智能·算法·机器学习
手写码匠2 小时前
华为云征文|DeepSeek-R1 智能问数 Agent 实战:Flexus X 实例 + Dify 构建企业级 Text-to-SQL 查询助手
人工智能·深度学习·算法·aigc
mifengxing2 小时前
Java集合与泛型
java·算法·复习笔记
liulilittle2 小时前
[OPENPPP2] ssea 算法详解(中文)
算法·x86·x64·simd·openppp2·ssea·base94
碧海银沙音频科技研究院2 小时前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
过期的秋刀鱼!2 小时前
学习曲线-过拟合和欠拟合要做什么以及原因
人工智能·python·深度学习·算法·机器学习·模型评估