力扣每日一题:74.搜索二维矩阵的三种解题方法

学习记录(十一)--Pattern Recognition投稿记录 上一周特别忽然通知统计建模要答辩,确定是否晋级国赛,一直在准备答辩的事情,所以上一周没有总结周汇报,深刻检讨!!!不过结果是好的,我们组第二名晋级哦。这周主要是跟大家分享一下我投稿PR(Pattern Recognition)的一个时间线,以及投稿后的工作。一、PR从投稿到接收的时间线2025.4.3 Major Revision(ddl4.23) 当时正在弄比赛和另一个着急推进的文章2025.5.30 Minor Revision 这次小修基本上只有一些格式和简单一点点问题。 阅读详情

74. 搜索二维矩阵

https://leetcode-cn.com/problems/search-a-2d-matrix/

难度:中等

题目:

编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性:

每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。

提示:

m == matrix.length

n == matrix[i].length

1 <= m, n <= 100

-104 <= matrix[i][j], target <= 104

示例:

示例 1:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3

输出:true

示例 2:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13

输出:false

分析:

凡是能通过暴力AC的题都不能算中等题...
这道题分别用暴力、贪心、二分完成

解题1.双层for循环:

class Solution:
    def searchMatrix(self, matrix, target):
        for i in matrix:
            for j in i:
                if j == target:
                    return True
                elif j > target:
                    return False
        return False

解题2.贪心算法:

class Solution:
    def searchMatrix(self, matrix, target):
        line = len(matrix) - 1
        row = len(matrix[0]) - 1
        i = j = 0
        while True:
            if matrix[i][j] == target:
                return True
            elif i < line and matrix[i + 1][j] <= target:
                i += 1
            elif j < row and matrix[i][j + 1] <= target:
                j += 1
            else:
                return False

解题3.二分查找:

class Solution:
    def searchMatrix(self, matrix, target):
        line = len(matrix)
        row = len(matrix[0])
        left = 0
        right = line * row
        while left < right:
            i, j = divmod((left + right) // 2, row)
            if matrix[i][j] == target:
                return True
            if matrix[i][j] < target:
                left = i * row + j + 1
            else:
                right = i * row + j
        return False

欢迎关注我的公众号: 清风Python,带你每日学习Python算法刷题的同时,了解更多python小知识。有喜欢力扣刷题的小伙伴可以加我微信互相鼓励,共同进步,一起玩转超级码力!

我的个人博客:https://qingfengpython.cn

力扣解题合集:https://github.com/BreezePython/AlgorithmMarkdown

Oracle EBS Tax 四国实现详解:印度、巴西、美国、阿根廷 印度:务必启用India Localization模块,不要尝试用标准EBTax模拟GST逻辑 巴西:必须配置NF-e接口,建议聘请本地税务顾问设置CFOP和NCM代码映射 美国:跨州业务强烈建议购买Vertex或Avalara服务,自建税率表维护成本极高 阿根廷:注意1:1:1架构限制,提前规划Legal Entity和OU结构 阅读详情

相关推荐

QMT中ContextInfo的使用注意

QMT中ContextInfo下声明的全局变量的使用注意事项

路在何方 2812

实习--Day17

8/13

HWQlet的博客 236

从48V到800V:TI BMS芯片如何应对高压电池管理挑战?

电池管理系统是电动汽车和储能系统的核心,负责监控电池状态、保障安全并优化性能。其核心原理在于通过高精度测量电池电压、电流和温度,结合算法估算电池的荷电状态与健康状态,从而实现精准的能量管理与寿命预测。在技术价值层面,高精度测量能最大化利用电池化学窗口,提升能量密度与续航里程;而符合功能安全标准的设计则是防止热失控等安全事故的基石。随着汽车电气化从48V轻混系统向400V/800V高压平台演进,BMS面临着测量精度、功能安全、高压隔离通信和系统成本等多重挑战。德州仪器的BQ796xx和BQ75614系列芯片,

weixin_27017211的博客 343

力扣74——搜索二维矩阵

代码附详细注释

qq_45823984的博客 517

从FrSky到TBS:深度解析航模2.4G遥控协议江湖史(附ELRS高频头改装指南)

本文深度解析了航模2.4G遥控协议的技术演进史,从FrSky ACCST的兴衰到TBS Crossfire的崛起,再到开源协议ExpressLRS的革命性突破。文章不仅对比了各协议在延迟、距离与抗干扰能力上的技术内核,还提供了为多协议遥控器加装TBS Crossfire高频头的实战改装指南,帮助玩家打通协议壁垒,提升飞行体验。

weixin_29193259的博客 738

【Lammps】MS将cif通过msi2lmp.exe转为data文件

在Materials Studio中打开cif文件,在Modules工具行选择Forcite>calculation>Energy中选用cvff力场,点击more,不要运行run,在more中取消勾选calculate automatically,点击calculate,然后叉掉后在file>export导出car文件,同步生成了mdf文件。对于MS中没有的立场,选择之后点calculate会报错,右键选择label,然后根据Forcite选择原子,会发现有力场的有标号,没有力场的MS没有对选择标号。

zhangguoliang624的博客 3674

搜索二维矩阵题目(题目+原理+python代码实现)

搜索二维矩阵 class Solution(object): def searchMatrix(self, matrix, target): """ :type matrix: List[List[int]] :type target: int :rtype: bool """ # 循环寻找,假设是m行n列的列表,时间复杂度为O(n*m)。 for line in matrix: #

qq_43906485的博客 533

Windows下RISC-V开发环境搭建:xpack-riscv-none-elf-gcc安装配置全攻略

本文详细介绍了在Windows平台下搭建RISC-V开发环境的完整流程,重点讲解xpack-riscv-none-elf-gcc工具链的安装配置方法。从环境变量设置到VSCode集成开发环境搭建,涵盖汇编程序和C程序开发实践,为开发者提供一站式解决方案,助力快速掌握RISC-V架构开发技能。

weixin_26765287的博客 441

【力扣】240:搜索二维矩阵 II

题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 来源:力扣(LeetCode) 算法思路 二分 class Solution: def findNumberIn2DArray(self, matrix, target: int) -> bool: def BS(ls): l,r=0,len(ls)-1

Heart_for_Ling的博客 512

ubuntu-25.04-desktop-amd64 工具VMware-tools 正确安装方法

摘要:Ubuntu 25.04虚拟机安装VMware Tools后无法实现主机与虚拟机间的文件复制粘贴和拖拽功能,问题可能源于工具兼容性。建议优先安装open-vm-tools套件(含open-vm-tools-desktop),而非官方VMware Tools。具体方案:通过终端执行安装命令后重启系统。该方法已实测有效解决该兼容性问题。(149字)

安徽锐锋科技-沐雨潇竹 672

Raspberry Pi Pico + Inmp441麦克风(Pio模拟I2s)<2>

摘要:本文介绍了在Raspberry Pi Pico上使用PIO(Programmable I/O)接收I2S数字麦克风音频数据并保存为WAV文件的方法。项目采用双PIO状态机设计,一个生成I2S时钟信号(WS+SCK),另一个接收24位左声道数据并转换为16位格式。文章详细说明了接线方式、参数设置、WAV文件头构造、PIO汇编程序实现以及数据转换处理流程。项目在MicroPython环境下实现16kHz采样率、6秒时长录音,具有时序精确、稳定可靠的特性,并提供了进一步拓展的可能性,如双声道支持、实时频谱分

技术需要沉淀,需要碰撞。 662

LeetCode74. 搜索二维矩阵

难度:中等 题目描述: 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 解题思路: 从左下角开始遍历,如果当前元素值比target大的话就向上走,否则向右走 class Solution { public: bool searchMatrix(vector<vector<int>>& matrix, int target) {

Closure 249

(BS ISO 11898-1:2015)CAN_FD 总线协议详解1- 基本概念描述

本文对can总线协议做了详细的讲解,can协议里面的每一个知识点都做了详细且举一反三的论述,读了本文可以不用读can协议了。

zhangziranzm的博客 2315

【力扣每日一题、74搜索二维矩阵】二分查找法在二维数组上的应用

原题链接 题目 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 解题思路 早上起来看力扣每日一题,看到只是搜索某值,这该是个简单题的。原本我还理解错意思了,以为要判断是增矩阵和找到target,哈哈。后来只是要查找到target就行了,如果暴力的直接两层for循环就可以搞定。但是题目给的明显是有顺序的二维数组,我们直接使用二分查找法,二分查找法在一维数组上写起来很容易,但是在二

VanGotoBilibili的博客 1956

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

力扣每日一题74:搜索二维矩阵

给你一个满足下述两条属性的m x n给你一个整数target,如果target在矩阵中,返回true;否则,返回false。truefalse通过次数341.4K提交次数696.7K通过率49.0%

m0_73441691的博客 822

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【每日一题】74. 搜索二维矩阵

每日一题,今天是中等题,是道比较简单的二分题。

C_Ryson的博客 677

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LeetCode题目74:搜索二维矩阵

在处理类似矩阵的数据结构时,如数据库表或二维数据集,使用这些算法可以优化查询操作,特别是在数据有序时。

10年数据\经营分析经验,现任大厂数据分析负责人 1286

Leetcode.74.搜索二维矩阵--每日一题

昨天力扣打完卡忘记更新了。 Leetcode.74.搜索二维矩阵 题目难度:中等 题目:原题链接 思路: 方法一:暴力法 暴力法,就很直接,要找target就遍历数组; 两层for循环,解决; Java版 暴力法的竟然击败了百分之76????????啊这。。。。。。 class Solution { public boolean searchMatrix(int[][] matrix, int target) { //暴力法遍历矩阵 for(int i=0;i<matr

不是老哥的博客 242

【每日一题-leetcode】74.搜索二维矩阵

74.搜索二维矩阵 搜索二维矩阵 难度 中等 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 二分 public boolean searchMatrix(int[][] ma

芝兰生于深谷,不以无人而不芳 572

力扣每日一题:74. 搜索二维矩阵

目录题目:74. 搜索二维矩阵示例1示例2提示解题思路(1)折半查找(二分法)(2)暴力破解解题代码(1)折半查找(二分法)(2)暴力破解解题感悟 题目:74. 搜索二维矩阵 难度: 中等 题目: 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例1 输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 输出

aruewds的博客 219

【LeetCode每日一题】74. 搜索二维矩阵

【LeetCode每日一题】74. 搜索二维矩阵今日题目74题,每日一题微信交流群可以点击右下角:合作转载->联系我,拉你入群。题目:编写一个高效的算法来判断 m x n 矩阵中,是...

Francis的博客 366

每日一题:Leetcode-74 探索二维矩阵

力扣题目解题思路java代码。

LIUCHANGSHUO的博客 399

[C++&Rust]LeetCode No.74 搜索二维矩阵(每日一题)

大家好! 今天给大家带来的是第74题搜索二维矩阵 ​传送门: https://leetcode-cn.com/problems/search-a-2d-matrix/ 这个题其实一看就知道是二分,因为他都把升序写到脸上了,关键是二分的方法. 有两种方法来进行二分查找: 先对行进行查找,定位到行,再在行内进行查找,两次二分 直接将所有的数据看成一个整体(即假想将所有数据拉平),一次二分 这两种方法其实没有什么本质复杂度的区别,都是O(lg(m*n)),而第一种方法看起来就复杂很多,因为还要判断存不存在这

SGCTSGCT的博客 313

Leetcode—74. 搜索二维矩阵【中等】

运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

Atticus的博客 477

每日两道力扣,day4

二分查找

2402_88143778的博客 719

LeetCode 每日一题74. 搜索二维矩阵

74. 搜索二维矩阵 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 输出:true 示例 2: 输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13 输出:false

雷震子的博客 222
上一篇: 力扣每日一题:190.颠倒二进制位 ,常规解法与暴力投机!
下一篇: 力扣每日一题:71. 简化路径 一个现实场景的运维题目
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值