news 2026/6/10 14:49:26

day128—二分查找—搜索二维矩阵(LeetCode-74)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day128—二分查找—搜索二维矩阵(LeetCode-74)

题目描述

给你一个满足下述两条属性的m x n整数矩阵:

  • 每行中的整数从左到右按非严格递增顺序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

给你一个整数target,如果target在矩阵中,返回true;否则,返回false

示例 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

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 100
  • -104 <= matrix[i][j], target <= 104

解决方案:

核心逻辑

代码利用矩阵 “每行升序、行尾元素递增” 的特性,分两步完成查找:

  1. 定位目标行:遍历矩阵的每一行,通过比较target与当前行的最后一个元素,找到第一个行尾元素 ≥target的行(目标值若存在,必在这一行);
  2. 单行二分查找:调用lower_bound函数,在定位到的行中使用开区间二分法left=-1right=列数,循环条件left+1<right)查找target,找到则返回true,否则返回false
  3. 若遍历完所有行都未找到符合条件的行,直接返回false

总结

  1. 核心思路:先通过行尾元素快速缩小目标范围到某一行,再在该行内用二分查找精准定位,兼顾简洁性和效率;
  2. 关键设计:lower_bound函数采用开区间二分法,简化了单行查找的边界处理;
  3. 适用场景:仅适用于 “每行升序、行尾元素递增” 的二维矩阵,是该类矩阵查找的经典解法。

函数源码:

class Solution { public: bool lower_bound(vector<int>& nums,int left,int right, int x){ int len=nums.size(); int mid=0; while(left+1<right){ mid=(left+right)/2; if(nums[mid]<x) left=mid; else right=mid; } return nums[right]==x? true:false; } bool searchMatrix(vector<vector<int>>& matrix, int target) { int len=matrix.size(); int row_len=matrix[0].size(); for(int i=0;i<len;i++){ if(target<=matrix[i][row_len-1]){ return lower_bound(matrix[i],-1,matrix[i].size(),target); } } return false; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:36:50

如何快速掌握Ref-Extractor:文献引用管理的终极解决方案

如何快速掌握Ref-Extractor&#xff1a;文献引用管理的终极解决方案 【免费下载链接】ref-extractor Reference Extractor - Extract Zotero/Mendeley references from Microsoft Word files 项目地址: https://gitcode.com/gh_mirrors/re/ref-extractor 还在为丢失参考…

作者头像 李华
网站建设 2026/6/10 10:41:33

QQ空间历史说说终极备份指南:一键永久保存你的数字青春

QQ空间历史说说终极备份指南&#xff1a;一键永久保存你的数字青春 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还记得那些年我们在QQ空间写下的青涩文字吗&#xff1f;从"今天…

作者头像 李华
网站建设 2026/6/10 10:44:24

Qwen3-VL多模态体验指南:小白3步上手,1块钱起玩

Qwen3-VL多模态体验指南&#xff1a;小白3步上手&#xff0c;1块钱起玩 你是不是也经常刷到那些“AI看图写爆款文案”的视频&#xff1f;看着别人上传一张产品图&#xff0c;AI立马生成一段生动有趣的社交媒体文案&#xff0c;心里直痒痒。但一想到自己那台轻薄的MacBook跑不动…

作者头像 李华
网站建设 2026/6/10 11:30:02

GetQzonehistory:三步永久保存你的QQ空间青春回忆

GetQzonehistory&#xff1a;三步永久保存你的QQ空间青春回忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还记得那年深夜发的第一条说说吗&#xff1f;那些承载着青春印记的文字和图…

作者头像 李华
网站建设 2026/6/10 13:32:18

用万物识别模型做了个智能导览项目,全过程分享

用万物识别模型做了个智能导览项目&#xff0c;全过程分享 近年来&#xff0c;随着多模态AI技术的成熟&#xff0c;图像理解正从“识别物体”迈向“理解场景”。在这一趋势下&#xff0c;我尝试将阿里开源的万物识别-中文-通用领域模型应用于一个实际项目——智能导览系统。该…

作者头像 李华
网站建设 2026/6/10 14:20:44

NewBie-image-Exp0.1优化指南:如何调整参数获得最佳画质

NewBie-image-Exp0.1优化指南&#xff1a;如何调整参数获得最佳画质 1. 引言 1.1 技术背景与应用场景 在当前AI生成内容&#xff08;AIGC&#xff09;快速发展的背景下&#xff0c;高质量动漫图像生成已成为创作者和研究者关注的核心方向。NewBie-image-Exp0.1 是一个专注于…

作者头像 李华