news 2026/6/22 19:09:00

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/20 10:51:31

LoRA训练成本计算器:输入参数自动算价格

LoRA训练成本计算器&#xff1a;输入参数自动算价格 你是不是也遇到过这种情况&#xff1a;想训练一个自己的LoRA模型&#xff0c;画风、角色都能自定义&#xff0c;听起来很酷。但一想到要花钱买GPU、租服务器、跑训练任务&#xff0c;心里就开始打鼓——这到底得花多少钱&am…

作者头像 李华
网站建设 2026/6/14 12:03:53

告别繁琐配置!用Qwen3-0.6B镜像秒搭AI问答系统

告别繁琐配置&#xff01;用Qwen3-0.6B镜像秒搭AI问答系统 随着大模型技术的快速演进&#xff0c;如何高效部署一个功能完整、响应迅速的AI问答系统成为开发者关注的核心问题。传统部署方式往往涉及复杂的环境配置、依赖管理与接口调试&#xff0c;耗时且易出错。而借助Qwen3-…

作者头像 李华
网站建设 2026/6/13 11:14:28

PDF-Extract-Kit增量处理:TB级文档云端分批解析,不爆内存

PDF-Extract-Kit增量处理&#xff1a;TB级文档云端分批解析&#xff0c;不爆内存 你有没有遇到过这样的情况&#xff1a;手头有一堆几十年前的老报纸PDF合集&#xff0c;总大小动辄几十GB甚至上TB&#xff0c;想做数字化归档或内容提取&#xff0c;结果刚打开文件电脑就卡死&a…

作者头像 李华
网站建设 2026/6/12 19:44:00

ProGuard Maven插件终极指南:构建更安全、更高效的Java应用

ProGuard Maven插件终极指南&#xff1a;构建更安全、更高效的Java应用 【免费下载链接】proguard-maven-plugin ProGuard Maven plugin that supports modularised ProGuard packages 项目地址: https://gitcode.com/gh_mirrors/pr/proguard-maven-plugin ProGuard Mav…

作者头像 李华
网站建设 2026/6/18 16:22:52

当SaaS从效率工具变成安全隐患:企业为什么需要私有化数字底座

过去五年&#xff0c;中国企业的SaaS采用速度呈指数级增长。从OA到CRM&#xff0c;从HR系统到协同办公&#xff0c;几乎每家企业都在同时使用十几甚至几十个SaaS服务。部门越多&#xff0c;工具越多&#xff0c;表面上效率似乎越来越高。 但一个悖论正在浮现&#xff1a;企业越…

作者头像 李华
网站建设 2026/6/13 19:47:30

IQuest-Coder-V1保姆级部署:小白3步搞定,1块钱起体验

IQuest-Coder-V1保姆级部署&#xff1a;小白3步搞定&#xff0c;1块钱起体验 你是不是一个想转行学编程的文科生&#xff1f;面对代码一脸懵&#xff0c;不知道从哪下手&#xff1f;看到别人写Python、做网页、搞数据分析&#xff0c;自己却连环境都配不上&#xff0c;是不是特…

作者头像 李华