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

百度收录个人网站是什么怎么做外贸网站制作公司

百度收录个人网站是什么怎么做,外贸网站制作公司,网站的搜索引擎方案,东城手机网站建设LeetCode 热题 100 | 74. 搜索二维矩阵 大家好,今天我们来解决一道经典的算法题——搜索二维矩阵。这道题在 LeetCode 上被标记为中等难度,要求我们在一个满足特定条件的二维矩阵中查找一个目标值。如果目标值在矩阵中,返回 true&#xff1b…

LeetCode 热题 100 | 74. 搜索二维矩阵

大家好,今天我们来解决一道经典的算法题——搜索二维矩阵。这道题在 LeetCode 上被标记为中等难度,要求我们在一个满足特定条件的二维矩阵中查找一个目标值。如果目标值在矩阵中,返回 true;否则,返回 false。下面我将详细讲解解题思路,并附上 Python 代码实现。


问题描述

给定一个满足以下两个条件的 m x n 整数矩阵:

  1. 每行中的整数从左到右按非严格递增顺序排列。
  2. 每行的第一个整数大于前一行的最后一个整数。

你需要判断一个整数 target 是否在矩阵中。

示例 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

解题思路

核心思想
  1. 二分查找

    • 由于矩阵的每一行都是有序的,并且每行的第一个元素大于前一行的最后一个元素,整个矩阵可以看作是一个一维有序数组。
    • 因此,可以使用二分查找来高效地查找目标值。
  2. 映射二维索引到一维索引

    • 将二维矩阵的索引映射到一维数组的索引,方便进行二分查找。

Python代码实现

def searchMatrix(matrix, target):""":type matrix: List[List[int]]:type target: int:rtype: bool"""if not matrix or not matrix[0]:return Falsem, n = len(matrix), len(matrix[0])  # 获取矩阵的行数和列数left, right = 0, m * n - 1  # 初始化二分查找的左右边界while left <= right:mid = (left + right) // 2  # 计算中间索引mid_value = matrix[mid // n][mid % n]  # 将一维索引映射到二维索引if mid_value == target:return True  # 找到目标值,返回 Trueelif mid_value < target:left = mid + 1  # 目标值在右侧,移动左边界else:right = mid - 1  # 目标值在左侧,移动右边界return False  # 未找到目标值,返回 False# 测试示例
print(searchMatrix([[1,3,5,7],[10,11,16,20],[23,30,34,60]], 3))  # 输出: True
print(searchMatrix([[1,3,5,7],[10,11,16,20],[23,30,34,60]], 13))  # 输出: False

代码解析

  1. 初始化边界

    • left 初始化为 0,right 初始化为矩阵的最后一个元素的索引 m * n - 1
  2. 二分查找

    • left <= right 的范围内,计算中间索引 mid
    • 将一维索引 mid 映射到二维索引 matrix[mid // n][mid % n]
    • 如果 mid_value 等于目标值,直接返回 True
    • 如果 mid_value 小于目标值,说明目标值在右侧,将 left 移动到 mid + 1
    • 如果 mid_value 大于目标值,说明目标值在左侧,将 right 移动到 mid - 1
  3. 返回结果

    • 如果未找到目标值,循环结束后返回 False

复杂度分析

  • 时间复杂度:O(log(m * n)),其中 m 是矩阵的行数,n 是矩阵的列数。二分查找的时间复杂度为 O(log(m * n))。
  • 空间复杂度:O(1),只使用了常数个额外空间。

示例运行

示例 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

总结

通过将二维矩阵的索引映射到一维索引,我们可以使用二分查找高效地查找目标值。这种方法不仅简洁,而且效率非常高,适合处理类似的问题。希望这篇题解对大家有所帮助,如果有任何问题,欢迎在评论区留言讨论!

关注我,获取更多算法题解和编程技巧!

http://www.dtcms.com/wzjs/504319.html

相关文章:

  • 申请收费网站空间青岛seo软件
  • 做一些购物网站网站优化排名软件哪些最好
  • 网页设计与制作黑马程序员seoul是什么国家
  • 东莞凤岗哪里有学做网站的石家庄关键词优化平台
  • oa和erp系统区别seowhy论坛
  • 保洁公司网站源码企业整站seo
  • 网站建设 思维导图设计公司网站设计
  • 宝安做网站哪家好百度网址大全官网
  • 可以做h5游戏的网站昆明seo工资
  • 可以做ps兼职的网站seo权重查询
  • 重庆市住建厅网站外贸网站推广seo
  • 怀化市建设局招投标网站手游免费0加盟代理
  • 网站怎么做转发搜索引擎大全排行
  • wordpress语言切换网站网络整合营销是什么意思
  • 企业名录模板上海关键词优化推荐
  • 展示类网站今日国内新闻最新消息大事
  • 做网站百度四川网络推广seo
  • 顺德区网站设计网站开发的基本流程
  • 凡科建站官网登录入口网页版seo外包公司兴田德润
  • 优质的网站建设流程seo项目完整流程
  • 中国建设银行纪念币预约网站百度seo推广方案
  • 北京网站建设价培训推广 seo
  • 新手学做网站需要注意的几点whois查询
  • 三里河网站建设怎样做好服务营销
  • 进腾讯做游戏视频网站百度在线入口
  • 建设企业网站专业服务河南网站建设制作
  • 免费注册个人网站拓客软件
  • 跟我一起做网站微信营销号
  • 王牌网站做代理推广普通话奋进新征程演讲稿
  • 幼儿园老师对班级网站建设如何做网页推广