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

执行时间如下:

相关推荐
来自天蝎座的孙孙9 分钟前
洛谷P1595讲解(加强版)+错排讲解
python·算法
GawynKing29 分钟前
图论(5)最小生成树算法
算法·图论·最小生成树
试剂界的爱马仕34 分钟前
胶质母细胞瘤对化疗的敏感性由磷脂酰肌醇3-激酶β选择性调控
人工智能·科技·算法·机器学习·ai写作
打不了嗝 ᥬ᭄1 小时前
Linux 信号
linux·开发语言·c++·算法
张子夜 iiii1 小时前
机器学习算法系列专栏:主成分分析(PCA)降维算法(初学者)
人工智能·python·算法·机器学习
一匹电信狗1 小时前
【C++】异常详解(万字解读)
服务器·c++·算法·leetcode·小程序·stl·visual studio
sp422 小时前
白话 LRU 缓存及链表的数据结构讲解(二)
算法
PineappleCoder2 小时前
为什么说发布 - 订阅是代码的 “万能胶水”?解耦逻辑全解析
前端·javascript·算法
墨染点香2 小时前
LeetCode 刷题【43. 字符串相乘】
算法·leetcode·职场和发展
weixin_307779132 小时前
VS Code配置MinGW64编译Ipopt库
开发语言·c++·vscode·算法