leetcode hot100 240.搜索二维矩阵



从 右上角 或 左下角 出发

以 右上角 (0, cols-1) 为例:

当前值 x

  • 如果 x == target → 找到了
  • 如果 x > target → 这一列都比 target 大,左移
  • 如果 x < target → 这一行都比 target 小,下移

每一步都能排除一整行或一整列

时间复杂度:O(m + n) :行最多走 m 次,列最多走 n 次。远不会访问同一个单元两次
空间复杂度:O(1): 只用了常数个变量,没有:递归、栈、额外数组、哈希表。空间复杂度 = O(1)

python 复制代码
class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        if not matrix or not matrix[0]:
            return False
        
        rows = len(matrix)
        cols = len(matrix[0])
        
        # 从右上角开始搜索
        row = 0
        col = cols - 1
        
        while row < rows and col >= 0:
            current = matrix[row][col]
            if current == target:
                return True
            elif current > target:
                # 当前值太大,往左移
                col -= 1
            else:
                # 当前值太小,往下移
                row += 1
                
        return False
相关推荐
玛丽莲茼蒿6 小时前
Leetcode hot100 每日温度【中等】
算法·leetcode·职场和发展
样例过了就是过了6 小时前
LeetCode热题100 分割等和子集
数据结构·c++·算法·leetcode·动态规划
北顾笙9807 小时前
day38-数据结构力扣
数据结构·算法·leetcode
m0_629494737 小时前
LeetCode 热题 100-----14.合并区间
数据结构·算法·leetcode
xin_nai7 小时前
LeetCode热题100(Java)(5)普通数组
算法·leetcode·职场和发展
水蓝烟雨9 小时前
3337. 字符串转换后的长度 II
算法·leetcode
_日拱一卒9 小时前
LeetCode:226翻转二叉树
数据结构·算法·leetcode
踩坑记录10 小时前
leetcode hot100 64. 最小路径和 medium 递归优化
leetcode·深度优先
样例过了就是过了10 小时前
LeetCode热题100 最长有效括号
c++·算法·leetcode·动态规划
水蓝烟雨11 小时前
3335. 字符串转换后的长度 I
算法·leetcode