Leetcode刷题记录32——搜索二维矩阵 II

题源:https://leetcode.cn/problems/search-a-2d-matrix-ii/description/?envType=study-plan-v2&envId=top-100-liked

题目描述:

思路一:
💡 解题思路:利用矩阵有序特性 + 双指针法(Z 字形搜索)

由于矩阵每一行和每一列都是有序的,我们可以利用这个特性,避免暴力遍历所有元素。

✅ 核心思想:

我们从矩阵的 右上角 开始搜索:

  • 如果当前值等于 target:找到目标,返回 True
  • 如果当前值大于 target:说明这一列的下面都更大,可以直接排除 → 向左移动(col -= 1
  • 如果当前值小于 target:说明这一行的左边都更小,可以直接向下找更大的 → 向下移动(row += 1

这样我们就能像"走楼梯"一样,逐步逼近目标值。

代码如下:

python 复制代码
class Solution(object):
    def searchMatrix(self, matrix, target):
        """
        :type matrix: List[List[int]]
        :type target: int
        :rtype: bool
        """
        row = 0
        col = len(matrix[0]) - 1

        while row <= len(matrix) -1 and col >= 0:
            if target == matrix[row][col]:
                return True
            elif target > matrix[row][col]:
                row += 1
            else:
                col -= 1
        
        return False

执行时间如下:

相关推荐
爱coding的橙子1 小时前
每日算法刷题Day19 5.31:leetcode二分答案3道题,用时1h
算法·leetcode·职场和发展
地平线开发者2 小时前
征程 6EM 常见 QConfig 配置解读与示例
算法·自动驾驶
GEEK零零七3 小时前
Leetcode 1908. Nim 游戏 II
算法·leetcode·博弈论
sbc-study3 小时前
混沌映射(Chaotic Map)
开发语言·人工智能·python·算法
Magnum Lehar3 小时前
vulkan游戏引擎game_types.h和生成build.bat实现
java·算法·游戏引擎
Christophe Chen3 小时前
strcat及其模拟实现
c语言·算法
独家回忆3644 小时前
每日算法-250531
算法
@我漫长的孤独流浪4 小时前
数据结构测试模拟题(2)
数据结构·c++·算法
秋难降5 小时前
贪心算法:看似精明的 “短视选手”,用好了也能逆袭!💥
java·算法