当前位置: 首页 > news >正文

二分查找篇——搜索二维矩阵【LeetCode】遍历法

 74. 搜索二维矩阵

双层循环遍历法

一、算法逻辑(逐步通顺讲解每一步思路)

该算法的目标是判断一个给定的目标值 target 是否存在于二维矩阵 matrix 中。

题目给定的矩阵有如下两个特性:

  1. 每行元素从左到右升序排列;

  2. 每行的第一个整数大于前一行的最后一个整数(整个矩阵可以视作一个升序的「一维数组」)。

然而,这段代码 没有利用上述性质,而是采取了最简单直接的方式:

✅ 1️⃣ 获取矩阵维度

M = len(matrix):总行数;
N = len(matrix[0]):每行列数。

✅ 2️⃣ 遍历整个矩阵

使用两个嵌套循环,逐个元素遍历二维数组中的每一项:

  • 外层循环遍历每一行;

  • 内层循环遍历每一列。

✅ 3️⃣ 逐个比对元素值

如果当前元素 matrix[i][j] 等于 target,直接返回 True;否则继续查找。

✅ 4️⃣ 未找到则返回 False

所有元素遍历完后未找到目标值,返回 False


二、核心点总结

该算法核心非常简单直接:

  • 暴力穷举法:遍历整个二维数组逐个比对元素;

  • 未利用矩阵的有序特性,没有进行任何剪枝或优化;

  • ✅ 实现简单,容易理解;

  • ❌ 对于大数据量输入效率较低。

换句话说,这是最基础的解法(Baseline),适合初学者理解,但在面试或实际场景中不推荐使用

class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:M, N = len(matrix), len(matrix[0])for i in range(M):for j in range(N):if matrix[i][j] == target:return Truereturn False

三、时间复杂度分析

共 M 行,每行 N 个元素:

✅ 时间复杂度为 O(M × N)


四、空间复杂度分析

该算法仅使用了常数级别的辅助变量(i, j, M, N),不依赖任何额外数据结构或递归栈:

✅ 空间复杂度为 O(1)


✅ 总结一句话

这是一种最朴素的暴力搜索解法,时间复杂度为 O(M×N),空间复杂度 O(1),实现简单但未利用矩阵的有序性质,适合新手理解,不适合实际使用或面试场景,可进一步优化为「逐行二分查找」或「二维 -> 一维映射 + 二分」的高效解法。

http://www.lryc.cn/news/582619.html

相关文章:

  • Mysql常用内置函数,复合查询及内外连接
  • 嘉立创黄山派下载watch ui demo 教程(sf32)
  • (电机03)分享FOC控制中SVPWM的输出关联硬件
  • [ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
  • Sa-Token完全学习指南
  • npm 包 scheduler 介绍
  • C++STL-vector
  • 股票数据源对接技术指南:印度尼西亚、印度、韩国
  • 静态路由实验以及核心原理
  • ubuntu24.04安装NFS网络文件系统/ARM开发板NFS挂载
  • 香港风水(原生)林地的逻辑分类器
  • 香港站群服务器价格怎么样?
  • Android UI 组件系列(四):EditText 使用详解与输入限制
  • LabVIEW-GPRS 远程土壤监测
  • Unity开发如何解决iOS闪退问题
  • kotlin中的冷流和热流
  • 5 种备份和恢复安卓短信的方法
  • 理解STM32F103的中断优先级分组
  • C#,js如何对网页超文本内容按行拆分,选择第A-B个字符返回HTM?
  • day55 序列预测任务介绍
  • React Native安卓刘海屏适配终极方案:仅需修改 AndroidManifest.xml!
  • 鸿蒙分布式开发实战指南:让设备协同像操作本地一样简单
  • Jmeter的JDBC数据库连接
  • 基于springboot的非遗传承宣传平台
  • 【Mac开发】Mac 应用 Archive 成功后无法打开?
  • 苹果App上架流程:不用Mac也可以上架的方法
  • WPF之命令
  • 【论文阅读】Improving the Diffusability of Autoencoders
  • gloo 多卡训练
  • curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104