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

算法题-12

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

  • 每行中的整数从左到右按非严格递增顺序排列。

  • 每行的第一个整数大于前一行的最后一个整数。

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

关键条件我们可以看到,每行递增,每行第一个数>上一行的最后一个数,这意味着整体矩阵有序,那我们应该想如何映射回一维矩阵。

我们先确定了左右边界,let left = 0,let right = m * n - 1,然后发现,行列正好与中值存在关系,

row = Math.floor(mid / n)
col = mid % n

示例1:left = 0,right = 11 row = 3 col = 4,整体代码与搜索插入类似

var searchMatrix = function(matrix, target) { const m = matrix.length const n = matrix[0].length let left = 0 let right = m * n - 1 while(left <= right) { const mid = Math.floor((left + right) / 2) const row = Math.floor(mid / n) const col = mid % n const value = matrix[row][col] if(value === target) { return true } else if(value < target) { left = mid + 1 } else { right = mid - 1 } } return false }


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

相关文章:

  • Markdown学习笔记2.2分级标题
  • 2026.2.12
  • 基于 OpenCV 的模板匹配技巧实例
  • 题解:P14614 [2019 KAIST RUN Fall] Bigger Sokoban 40k
  • 鸿蒙架构师修炼之道-如何成为团队的架构师
  • 全链路Token智控,「秒云Tokens管家」解锁AI工程优化新范式
  • MIAOYUN | 每周AI新鲜事儿 260212
  • 用 Go 实现一个可长期运行的 GitHub Webhook 服务实践
  • wpf自适应布局
  • 理性愉悦:分块套 NTT
  • 手搓一个Clawdbot
  • Markdown语法学习笔记2.1对字体设置斜体、粗体、删除线
  • 软件架构能力和任务分解编排能力是Ai大浪潮下的核心技能
  • 比尼德斯实业有限公司是干嘛的?文登教育
  • 在python 3.14 容器中安装和使用chdb包
  • Markdown语法学习笔记1快捷键
  • 小白从零开始勇闯人工智能:机器学习初级篇(PCA素材降维)
  • 题解:P15206 [SWERC 2018] Dishonest Driver
  • 题解:AT_pakencamp_2024_day1_c One Half
  • Burp Suite 入门文档(官方翻译)
  • PyTorch项目合集一
  • springboot民宿管理系统--附源码32900 - 详解
  • 免费城市夜景视频素材网站推荐
  • TikTok Shop东南亚2026退货新规来袭!海外仓这样布局抢占先机
  • 完整教程:MySQL数据可视化实战:从查询到图表全攻略
  • 面向大模型开发:在项目中使用 TOON 的实践与流式处理深度解析:原理、实战与踩坑记录
  • 3:【GitHub连接】Connection timed out port 22 → 改用443端口SSH(公司/校园网2026常见)
  • 探索 LDO 电路:模拟集成电路设计的实践之旅
  • 2:【新手最坑】git push HTTPS vs SSH反复失败怎么彻底统一
  • 4:【Git clone】fatal: unable to access / timeout / proxy设置