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

LeetCode HOT100 - 搜索二维矩阵 II

因为 n, m 都挺小的,只有 300,所以暴力一点也没什么问题

比如直接查找,或者按照行的开头元素进行二分搜索来缩小一些范围

class Solution {
public:bool searchMatrix(vector<vector<int>>& a, int x) {int n = a.size();int m = a[0].size();vector<int> aa(n);for (int i = 0; i < n; i++) {aa[i] = a[i][0];}int it = upper_bound(aa.begin(), aa.end(), x) - aa.begin() - 1;if (it == -1) {return false;}for (int i = 0; i <= it; i++) {int j = lower_bound(a[i].begin(), a[i].end(), x) - a[i].begin();if (j == m) continue;if (a[i][j] == x) return true;}return false;}
};

官方题解则是有一个对横向和纵向的递增信息都利用的方法

看 (i, j) ,若 i, j 大于 target,那么 (i, j) ~ (n, m) 这个矩形一定大于 target

当然仅是这样的话,还有左上,右上,左下等等可能

所以我们搜索的顺序要做一定的限制,具体来说,是从 (0, m - 1) 开始

这样,如果大于的话,就只可能在左侧了,因为右侧相当于我们都遍历过了

如果小于,类似的,只可能在下方了

也就是按照对角线的方向逐步减小未搜索过的矩形区域

http://www.jsqmd.com/news/597773/

相关文章:

  • 告别CAN-TP通信超时!手把手教你用PCAN-Explorer 6和Vector上位机调优N_As/N_Bs/N_Cs参数
  • GLM-4.1V-9B-Base惊艳效果展示:高清图主体识别与中文场景描述对比
  • TranslucentTB:3分钟让Windows任务栏颜值蜕变的轻量神器
  • React Responsive Carousel 无障碍访问指南:确保所有用户都能使用
  • 宝玑官方售后服务中心新址实地考察报告(2026年4月权威发布) - 亨得利官方服务中心
  • Scratch Blocks自定义块开发教程:10个实用技巧创建专属编程块
  • 春联生成模型-中文-base效果实测:方言祝福词(粤语/闽南语)生成可行性
  • ncmdump终极指南:快速解密NCM格式实现音乐播放自由
  • html5_rtsp_player性能优化技巧:10个提升播放体验的实用方法
  • Nintendo Switch大气层系统:从分层架构到实战应用的全方位解析
  • Path of Building:数据驱动的流放之路Build规划解决方案
  • 多模态RAG实战:从表格到音视频的全链路落地指南
  • 深入解析gqlalchemy的唯一性约束
  • OWL ADVENTURE企业级部署架构:高可用与内网穿透方案
  • 一站式歌词提取解决方案:163MusicLyrics自动化歌词获取与处理工具
  • HTML To Figma:网页资产转化效率引擎,赋能设计师与开发者协作革新
  • 探秘好写作AI官网:解锁论文写作的“未来钥匙”
  • JavaScript中的面板拖动与调整大小
  • 如何快速上手Jasny Bootstrap:5分钟安装配置指南
  • 如何实现obsidian-skills国际化:支持多语言和本地化的完整指南
  • 深入解析控制系统中的误差传递函数与稳态误差特性
  • 架构技术演进的方向
  • 5分钟搞定!用OpenCV和Python实现摄像头实时监控(附常见问题解决)
  • Notion-Enhancer组件系统深度剖析:从架构设计到实践应用
  • XUnity.AutoTranslator实战指南:为Unity游戏打造无障碍多语言体验
  • Qwen2.5-1.5B开源模型部署:PyTorch 2.3+FlashAttention-2加速推理配置教程
  • Realistic Vision V5.1免配置镜像教程:4090以下GPU稳定运行实操手册
  • ReactiveArduino:面向MCU的零分配响应式编程框架
  • 湖北鑫巨达工贸有限公司:硚口区专业做GMT五金的公司 - LYL仔仔
  • 【数学建模 matlab 实验报告9】数据的统计分析与描述