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

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

 

相关文章:

  • 学习海康VisionMaster之垂线查找
  • 电控---SWD协议
  • Python进程与线程的深度对比
  • 【仿Mudou库one thread per loop式并发服务器实现】HTTP协议模块实现
  • Java中如何创建操作线程
  • 【Tip】MathType中输入空格符号
  • Indocia启动$INDO代币预售第一阶段 - 100% 社区安全,具有真正的盈利潜力
  • 【Python】如何查找电脑上的Python解释器
  • 【回眸】error: failed to compile `xxxxxx`重装rust环境
  • Unocss 类名基操, tailwindcss 类名
  • 【错误记录】Windows 命令行程序循环暂停问题分析 ( 设置 “ 命令记录 “ 选项 | 启用 “ 丢弃旧的副本 “ 选项 | 将日志重定向到文件 )
  • SpringBoot和微服务学习记录Day3
  • Java 自动装箱与拆箱:基本数据类型与包装类的转换
  • 【Java面试笔记:基础】1.谈谈你对Java平台的理解?
  • pip永久换镜像地址
  • 解决Chrome浏览器访问https提示“您的连接不是私密连接”的问题
  • DSRAM介绍
  • 【NCCL】transport建立(一)
  • c++学习之---vector
  • 【集群IP管理分配技术_DHCP】二、DHCP核心功能与技术实现
  • 专家学者视角下的乡村教育:目标与出路并非“走出大山”
  • 罗马教皇方济各去世,享年88岁
  • 比起追逐爆款,动画行业更需要打开思路“重塑肉身”
  • 经济参考报:安全是汽车智能化的终极目标
  • 体坛联播|巴萨三球逆转塞尔塔,CBA季后赛山西横扫广东
  • 海康威视:去年海外主业和机器人等创新业务占比首次超50%