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

执行时间如下:

相关推荐
A_nanda3 小时前
c# MOdbus rto读写串口,如何不相互影响
算法·c#·多线程
代码雕刻家5 小时前
2.4.蓝桥杯-分巧克力
算法·蓝桥杯
Ulyanov5 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲
智者知已应修善业6 小时前
【查找字符最大下标以*符号分割以**结束】2024-12-24
c语言·c++·经验分享·笔记·算法
91刘仁德7 小时前
c++类和对象(下)
c语言·jvm·c++·经验分享·笔记·算法
diediedei7 小时前
模板编译期类型检查
开发语言·c++·算法
阿杰学AI7 小时前
AI核心知识78——大语言模型之CLM(简洁且通俗易懂版)
人工智能·算法·ai·语言模型·rag·clm·语境化语言模型
mmz12077 小时前
分治算法(c++)
c++·算法
睡一觉就好了。7 小时前
快速排序——霍尔排序,前后指针排序,非递归排序
数据结构·算法·排序算法
Tansmjs8 小时前
C++编译期数据结构
开发语言·c++·算法