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
相关推荐
2401_878530214 分钟前
自定义内存布局控制
开发语言·c++·算法
专注VB编程开发20年4 分钟前
PNG、GIF透明游戏角色人物输出一张图片技巧,宽度高度读取
算法
CoderCodingNo14 分钟前
【CSP】CSP-J 2025真题 | 异或和 luogu-P14359 (相当于GESP六级水平)
算法
keep intensify18 分钟前
打家劫舍3
算法·深度优先
历程里程碑21 分钟前
Protobuf 环境搭建:Windows 与 Linux 系统安装教程
linux·运维·数据结构·windows·线性代数·算法·矩阵
keep intensify21 分钟前
岛屿数量--
算法·深度优先
代码探秘者1 小时前
【算法】吃透18种Java 算法快速读写模板
数据结构·数据库·python·算法·spring
2301_816651221 小时前
C++模块化设计原则
开发语言·c++·算法
gaozhiyong08131 小时前
提示词的解剖学:Gemini 3.1 Pro 提示工程高级策略与国内实战
人工智能·算法·机器学习
小范自学编程1 小时前
算法训练营Day44 - 动态规划part12
算法·动态规划