力扣hot100-240.搜索二维矩阵2-单调性剪枝详解
📅 2026/7/29 11:33:38
👁️ 次浏览
LeetCode 240. 搜索二维矩阵 II单调性剪枝详解1. 算法思想这题属于矩阵搜索 / 单调性剪枝也常被称为 Z 字形搜索。它不是普通二分查找每一行、每一列分别有序但整个矩阵按行展开后并不整体有序。例如[ [1, 4, 7], [2, 5, 8], [3, 6, 9] ]按行展开是1, 4, 7, 2, 5, 8, 3, 6, 9其中7后面是2因此不能把它当一维数组二分。本题的关键是从右上角开始每次比较都能确定排除一整行或一整列。2. 为什么从右上角开始右上角matrix[0][n - 1]有两个相反的单调方向左边都更小。 下面都更大。因此当前位置matrix[row][col]与target比较后移动方向是确定的current target向左排除当前列。 current target向下排除当前行。 current target找到答案。当前值过大为什么排除当前列如果current target当前列从上到下递增。从当前行往下的元素都满足matrix[i][col] current target整列都太大不可能有答案因此col--;当前值过小为什么排除当前行如果current target当前行从左到右递增。当前剩余区域中这一行从左边界到当前列的所有元素都满足matrix[row][j] current target整行都太小不可能有答案因此row;3. 用 target 5 完整模拟matrix [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ]从右上角开始row 0, col 4当前值 15 15 5向左。 row 0, col 3当前值 11 11 5向左。 row 0, col 2当前值 7 7 5向左。 row 0, col 1当前值 4 4 5向下。 row 1, col 1当前值 5 找到目标。路径是15 - 11 - 7 - 4 | v 5因此这类搜索也叫 Z 字形搜索。4. 为什么不会漏掉答案当前位置始终是当前剩余区域的右上角。当前值大于 target当前列下面的值更大整列排除安全。 当前值小于 target当前行左边的值更小整行排除安全。每一步删除的都是确定不可能包含target的区域。搜索会在找到目标或剩余区域为空时结束因此不会漏掉答案。5. Java 代码完整注释classSolution{publicbooleansearchMatrix(int[][]matrix,inttarget){// 空矩阵中不存在目标。if(matrix.length0||matrix[0].length0){returnfalse;}intmmatrix.length;intnmatrix[0].length;// 从右上角开始。introw0;intcoln-1;// row 只向下移动col 只向左移动。// 任一指针越界时说明剩余区域为空。while(rowmcol0){intcurrentmatrix[row][col];if(currenttarget){returntrue;}if(currenttarget){// 当前列从上到下递增下面的元素只会更大。// 所以当前列不可能有 target向左排除它。col--;}else{// 当前行从左到右递增左边的元素只会更小。// 所以当前行不可能有 target向下排除它。row;}}returnfalse;}}6. 左下角也可以左下角同样有相反的单调方向上面更小右边更大。因此从左下角开始也可以当前值大于 target向上。 当前值小于 target向右。它与右上角写法本质相同。学习时固定记住右上角版本即可大了向左小了向下。7. 复杂度分析每一步只会向左移动一列或者向下移动一行。最多向左 n 次。 最多向下 m 次。所以时间复杂度是O(m n)额外空间复杂度是O(1)8. 总结这题属于矩阵搜索 / 单调性剪枝。从右上角开始当前值 target当前列全都太大向左。 当前值 target当前行全都太小向下。每一步排除一整行或一整列因此效率是O(m n)。一句话记忆从右上角开始大了向左小了向下。
前端做 GIS 空间分析不是新鲜事,但把坡向计算搬到浏览器里跑、还要能交互式选范围,中间藏了多少细节?这篇文章把完整实现拆开给你看。 开篇
CesiumJS 提供了 sampleTerrain API 可以采样地形高度,但没有内置"坡向分析"…
📅 2026/7/29 11:33:38
RAG 解决“从哪里找到相关内容”,GraphRAG 解决“如何理解知识之间的关系”,LLM Wiki 解决“如何让知识长期沉淀、持续维护并被人和 AI 共同使用”。 关键词: RAG、GraphRAG、LLM Wiki、知识库、知识图谱、AI Agent
在构建企业知识库、智能问…
📅 2026/7/29 11:33:38
1. 项目概述:当MP3模块“哑火”时,我们到底在调试什么? “求助求助!!!”——在嵌入式开发社区里,看到这样标题的帖子,我几乎能立刻感受到屏幕那头朋友的焦灼。一个简单的MP3播放功能…
📅 2026/7/29 11:33:38
为什么你的英雄联盟需要R3nzSkin?3个简单秘诀实现安全换肤 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin
还在为英雄联盟中那些昂贵的皮肤而烦恼吗?想体验不同的皮…
📅 2026/7/29 12:37:28
更多请点击:
https://intelliparadigm.com
第一章:从模糊描述到帧级可控:AI视频提示词演进的范式革命 早期AI视频生成依赖“一只猫在草地上奔跑”这类自然语言描述,模型仅能输出粗粒度、不可控的结果。随着扩散架构与时空建模技术…
📅 2026/7/29 12:37:28
摘要以 Ariana Grande 起诉匿名黑客窃取未发行音乐素材案件为实证样本,聚焦文娱行业创作者云端数字资产被盗场景,系统拆解仿冒身份邮件钓鱼、云端存储账号劫持、移动设备入侵三类核心攻击链路。攻击者依托仿冒 Gmail 域名、Dropbox 仿冒登录页面、移动端…
📅 2026/7/29 12:37:28
1. 从零开始:为什么用Arduino做音乐是个好主意? 你可能觉得音乐制作是专业软件和昂贵设备的事,而Arduino只是个玩灯、玩小车的单片机开发板。但恰恰是这种“跨界”的玩法,让音乐创作的门槛降到了前所未有的低点,也带来…
📅 2026/7/29 12:37:28
在硕博圈、科研圈,几乎没人没听过Heliyon的名字。作为Cell Press旗下的开源综合期刊,背靠Elsevier大厂,覆盖理工、农医、社科全学科,审稿友好、录用门槛宽松、出刊速度快,一度成为无数科研人的「毕业救命刊」「结题兜底…
📅 2026/7/29 12:37:28
BBWEYY 教培增长解决方案
财会考证培训机构GEO获客与小程序 转化一体化策划案
从“被AI推荐”到“查询报考条件或领取备考方案”的完整招生转化闭环 项目定位 适用对象 方案版本 GEO获客与招生转化 财会考证培训机构 策划方案 V1.0|2026年7月 核心判断 财会…
📅 2026/7/29 12:36:27
解密Seq的核心功能:如何利用Pipeline实现高效基因组数据处理 【免费下载链接】seq A high-performance, Pythonic language for bioinformatics 项目地址: https://gitcode.com/gh_mirrors/se/seq
Seq作为一款高性能的生物信息学专用语言,其Pipel…
📅 2026/7/29 0:00:00
Flask-Blogging插件开发指南:打造属于你的个性化博客功能 【免费下载链接】Flask-Blogging A Markdown Based Python Blog Engine as a Flask Extension. 项目地址: https://gitcode.com/gh_mirrors/fl/Flask-Blogging
Flask-Blogging是一个基于Markdown的Py…
📅 2026/7/29 0:00:00
近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…
📅 2026/7/29 0:01:00
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/29 1:14:44
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/29 1:14:44
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/29 1:14:46
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/29 7:15:11
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/28 17:14:18
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/29 5:15:05