首页 > 编程语言 > 详细

5.24——4. 寻找两个正序数组的中位数(不满足题目要求的解法)

时间:2020-05-24 19:44:57      阅读:52      评论:0      收藏:0      [点我收藏+]

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

给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。
请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。
你可以假设 nums1 和 nums2 不会同时为空。

 

1.解题思路

题目要求时间复杂度为 O(log(m + n))。必然用到的是二分搜索算法。

而我的思路是:

  从两个数组中找到将两数组合并后的新数组的中位数的位置。由于两个数组的长度已知,因此中位数下标也可以知道两个指针,初始时分别指向两个数组的下标 0 的位置,每次将指向较小值的指针后移一位(如果一个指针已经到达数组末尾,则只需要移动另一个数组的指针),直到到达中位数的位置。

2.源码

技术分享图片

5.24——4. 寻找两个正序数组的中位数(不满足题目要求的解法)

原文:https://www.cnblogs.com/xiaoqichaoren/p/12951971.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!