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

74. 搜索二维矩阵

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

每行中的整数从左到右按非严格递增顺序排列。
每行的第一个整数大于前一行的最后一个整数。
给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

示例:
在这里插入图片描述
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true

解题思路:
如果我们将矩阵按行拼接成一个一维矩阵,那么就是一道常规的二分查找题目,只需令left=0,right=m*n - 1,然后来更新mid即可。现在问题是如何通过mid获取到矩阵中的元素,有了mid,mid_i = mid / n, mid_j = mid % n。

class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length, n = matrix[0].length;int left = 0, right = m * n - 1;while(left <= right){int mid = left + (right - left) / 2;int mid_i = mid / n;int mid_j = mid % n;if(matrix[mid_i][mid_j] == target){return true;}else if(matrix[mid_i][mid_j] > target){right = mid - 1;}else{left = mid + 1;}}return false;}
}
http://www.lryc.cn/news/579597.html

相关文章:

  • WPS 如何使用宏录制功能
  • Web 服务器架构选择深度解析
  • 【字节跳动】数据挖掘面试题0006:SVM(支持向量机)详细原理
  • LiteHub中间件之跨域访问CORS
  • 【ArcGISPro】基于Pro的Python环境进行Django简单开发Web
  • 队列和栈数据结构
  • RabbitMQ 高级特性之发送方确认
  • NV133NV137美光固态闪存NV147NV148
  • c++中的绑定器
  • 在Linux服务器上使用kvm创建虚拟机
  • 国内MCP服务平台推荐!aibase.cn上线MCP服务器集合平台
  • 儿童几岁开始可以使用益智玩具?
  • 解决python报not found libzbar-64.dll的问题
  • 基于 SpringBoot+Vue.js+ElementUI 的 “花开富贵“ 花园管理系统设计与实现7000字论文
  • 基于Hadoop的餐饮大数据分析系统的设计与实现
  • 刷卡登入数据获取
  • 纯前端批量下载
  • CPT204-Advanced OO Programming: Sorting排序
  • 扣子空间PPT生产力升级:AI智能生成与多模态创作新时代
  • JS模块导出导入笔记 —— 默认导出 具名导出
  • 行波进位加法器 (Carry-Propagate Adder)
  • UE5 瞄准偏移(AimOffset)功能详解
  • 独立开发者软件出海:如何用Semrush高效洞察与增长
  • RJ45 连接器(水晶头)的引脚定义
  • 贪心专题练习
  • 强实时运动控制内核MotionRT750(一):驱动安装、内核配置与使用
  • 马斯克脑机接口(Neuralink)技术进展,已经实现瘫痪患者通过BCI控制电脑、玩视频游戏、学习编程,未来盲人也能恢复视力了
  • OpenEuler 24.03 用 Ansible 一键完成 SSH 互信 —— 从踩坑到最终方案
  • 站在 Java 程序员的角度如何学习和使用 AI?从 MVC 到智能体,范式变了!
  • 渗透测试中 phpinfo() 的信息利用分析