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

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

解题思路:

本题的主要想法是两次二分查找,首先查找每一行的第一个值和target的关系,找到第一个比target大或者遍历完所有的列,然后想回找最后一个比target小的行,利用二分查找当前的行

代码:

class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:m = len(matrix)n = len(matrix[0])i = 0while i<m and target>=matrix[i][0]:i+=1left, right = 0, n-1while left<=right:mid = (left+right)//2if target==matrix[i-1][mid]:return Trueelif target>matrix[i-1][mid]:left = mid+1else:right =mid-1return False

 

http://www.xdnf.cn/news/993.html

相关文章:

  • Easysearch Rollup 相比 OpenSearch Rollup 的优势分析
  • MH2103系列coremark1.0跑分数据和优化,及基于arm2d的优化应用
  • 【c语言】深度理解指针4——sizeof和strlen
  • 你学会了些什么220120?--网页性能指标检测
  • docker数据目录迁移步骤
  • CopyOnWriteArrayList核心源码解析
  • 历史榜单的存储策略
  • 【系统架构设计师】信息安全的概念
  • Linux之信号
  • 【DataScript】标准数据格式化-国民经济行业分类(GB/T 4754-2017)
  • NLP高频面试题(四十八)大语言模型中的思维链(CoT)技术详解
  • Kafka 详细解读
  • 合同管理Contract Management
  • PowerBI工具提示-将表悬浮在数据上方
  • 【英语语法】词法---数词
  • 服务器数据迁移指南
  • docker基本命令1
  • 21-算法打卡-哈希表-三数之和-leetcode(15)-第二十一天
  • 鸿蒙系统ArkTs代码复习1
  • 多线程使用——线程池
  • 基于opencv和PaddleOCR识别身份证信息
  • RIP动态路由,实现两台PC互通三个路由器,两台电脑
  • 成功案例|TRAP1 与 CAMSAP3:早期子宫内膜癌预后的新 “风向标”
  • Federated Feature Augmentation and Alignment
  • Linux卸载删除gitlab
  • Vmware esxi 给现有磁盘增加空间后并扩展系统里磁盘空间
  • 文件内容课堂总结
  • Webpack 插件开发
  • MYDB仿MySQL手写数据库项目总结
  • UML 状态图:解锁电子图书馆管理系统的高效设计