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

wordpress 链接无效优化网站建设seo

wordpress 链接无效,优化网站建设seo,iis网站开发需要哪些配置,锚文本外链查询网站4. 寻找两个正序数组的中位数 给定两个大小分别为 m m m 和 n n n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O ( l o g ( m n ) ) O(log (mn)) O(log(mn)) 。 示例 1:…

4. 寻找两个正序数组的中位数

给定两个大小分别为 m m m n n n 的正序(从小到大)数组 nums1nums2。请你找出并返回这两个正序数组的 中位数

算法的时间复杂度应该为 O ( l o g ( m + n ) ) O(log (m+n)) O(log(m+n))

示例 1:

输入:nums1 = [1,3], nums2 = [2]
输出:2.00000
解释:合并数组 = [1,2,3] ,中位数 2

示例 2:

输入:nums1 = [1,2], nums2 = [3,4]
输出:2.50000
解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5

算法思路分析

该代码通过 二分排除法 在两个有序数组中高效寻找中位数,核心思路是逐步缩小搜索范围,每次排除约一半的不可能元素,确保时间复杂度为 O ( l o g ( m + n ) ) O(log(m+n)) O(log(m+n))。具体步骤如下:

算法步骤

  1. 确定中位数位置:
    • 若总长度 m+n 为奇数,中位数为第 k = (m+n+1)//2 小的元素。
    • 若为偶数,中位数为第 k = (m+n)//2 和 k+1 小元素的平均值。
  2. 递归排除法寻找第k小元素:
    • 初始化指针: index1index2 分别表示两个数组的当前起始位置。
    • 边界处理:
      • 若一个数组已全部排除,直接取另一数组的第 k 个元素。
      • k=1,返回两数组当前起始元素的最小值。
    • 计算比较点: 取两数组的 k//2-1 位置元素(若越界则取末尾)。
    • 排除较小部分: 比较两比较点,排除较小值所在数组的前 k//2 个元素,并更新 k 和对应数组的起始索引。

关键点

  • 二分排除策略: 每次排除约 k/2 个不可能元素,缩小问题规模。
  • 越界处理: 通过 min 函数确保比较点不越界,避免无效访问。
  • 动态调整k值: 每次排除后,k 减去已排除元素的数量,确保后续搜索正确。
  • 奇偶处理: 根据总长度奇偶性,灵活调用查找函数。

复杂度分析

  • 时间复杂度: O ( l o g ( m + n ) ) O(log(m+n)) O(log(m+n))
    每次循环排除约一半元素,最多执行 log(m+n) 次。

  • 空间复杂度: O ( 1 ) O(1) O(1)
    仅使用固定数量的变量,无额外空间消耗。

算法代码

class Solution:def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:def getKthElement(k):index1, index2 = 0, 0  # 初始化两个数组的起始索引while True:# 处理边界:若一个数组被完全排除,直接取另一数组的第k个元素if index1 == m:return nums2[index2 + k - 1]if index2 == n:return nums1[index1 + k - 1]# 当k=1时,只需比较当前索引处的最小值if k == 1:return min(nums1[index1], nums2[index2])# 计算新的比较点,防止越界newIndex1 = min(index1 + k // 2 - 1, m - 1)newIndex2 = min(index2 + k // 2 - 1, n - 1)pivot1, pivot2 = nums1[newIndex1], nums2[newIndex2]# 排除较小值所在数组的前半部分if pivot1 <= pivot2:k -= newIndex1 - index1 + 1  # 更新剩余k值index1 = newIndex1 + 1       # 移动起始索引else:k -= newIndex2 - index2 + 1index2 = newIndex2 + 1m, n = len(nums1), len(nums2)totalLength = m + n# 根据总长度奇偶性决定中位数计算方式if totalLength % 2 == 1:return getKthElement((totalLength + 1) // 2)else:return (getKthElement(totalLength // 2) + getKthElement(totalLength // 2 + 1)) / 2

在这里插入图片描述

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

相关文章:

  • 电子商务网站建设影响因素做网络营销推广
  • 免费的个人简历模板网站河南网站推广
  • 有没有专门做售楼部包装的网站全媒体运营师
  • 苏州网站建设哪家好查询百度关键词排名
  • 网站开发需不需要考研网站标题算关键词优化吗
  • 网络舆情监测分析seo策略什么意思
  • 厦门市城乡建设委员会网站tool站长工具
  • 网站对图片优化吗岳阳seo快速排名
  • 河南免费网站建设公司推荐如何网上免费做推广
  • 鞋子 东莞网站建设网络营销推广方案策划
  • 福州正规网站建设公司推荐玉溪seo
  • 怎么在百度上制作自己的网站郑州网站建设
  • 外贸网站建设要注意什么竞价推广怎样管理
  • 网站文章优化怎么做移动排名提升软件
  • 在服务器上布网站怎么做网站优化 福州
  • jsp两种网站开发模式发帖平台
  • 做直播的网站有哪些seo技术学院
  • 美容医院网站建设外贸网站建设报价
  • 中国设计网址导航seo是什么车
  • logo设计培训百度搜索引擎seo
  • 职参简历网站磁力兔子搜索引擎
  • 公司推广网站怎么做seo网站优化快速排名软件
  • 最好设计网站建设建网站
  • 营销网站的建设网站seo优化有哪些方面
  • 德州有名的网站建设公司房地产最新消息
  • 回龙观手机网站开发服务百度网盘下载速度
  • 做网站找投资人北京专业seo公司
  • 股权众筹网站建设seo排名培训学校
  • 网站备案 哪个省常州网站建设优化
  • wordpress删除未分类seo建站需求