4. Median of Two Sorted Arrays(两个有序数组的中位数)
来源:互联网 发布:网络打假举报电话是 编辑:程序博客网 时间:2024/05/17 01:38
There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
Example 1:
nums1 = [1, 3]
nums2 = [2]
The median is 2.0
Example 2:
nums1 = [1, 2]
nums2 = [3, 4]
The median is (2 + 3)/2 = 2.5
非正确答案,求的不是严格中位数,当两个数组元素个数总和为偶数时,求的是中间两个数左边的数:
class Solution: def findMedianSortedArrays(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: float """ return self.findMedian_logn(nums1, len(nums1), nums2, len(nums2)) def findMedian_logn(self, nums1, n1, nums2, n2): m1 = (n1-1)//2 m2 = (n2-1)//2 if n1==1: if n2 ==1: return nums1[0] if nums1[0]<nums2[0] else nums2[0] if n2%2==0: if nums1[0] >= nums2[m2+1]: return nums2[m2+1] elif nums1[0] <= nums2[m2]: return nums2[m2] else: return nums1[0] else: if nums1[0] >=nums2[m2]: return nums2[m2] elif nums1[0] <= nums2[m2-1]: return nums2[m2-1] else: return nums1[0] elif n2==1: if n1%2==0: if nums2[0] >= nums1[m1+1]: return nums1[m1+1] elif nums2[0] <= nums1[m1]: return nums1[m1] else: return nums2[0] else: if nums2[0] >= nums1[m1]: return nums2[m2] elif nums2[0] <= nums1[m1-1]: return nums1[m1-1] else: return nums2[0] else: cutlen = n1/2 if n1/2 < n2/2 else n2/2 if nums1[m1] == nums2[m2]: return nums1[m1] elif nums1[m1] < nums2[m2]: return self.findMedian_logn(nums1[cutlen:], n1-cutlen, nums2, n2-cutlen) else: return self.findMedian_logn(nums1, n1-cutlent, nums2[cutlen:], n2-cutlen)
leetcode接受的代码,比较暴力求解
class Solution: def findMedianSortedArrays(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: float """ total = len(nums1)+len(nums2) res_list=[] while len(nums1) and len(nums2): if nums1[0]<nums2[0]: res_list.append(nums1.pop(0)) else: res_list.append(nums2.pop(0)) if len(nums1): res_list+=nums1 elif len(nums2): res_list+=nums2 if total%2==0: return (res_list[total//2-1]+res_list[total//2])/2 else: return res_list[total//2]
阅读全文
0 0
- 两个有序数组的中位数 Median of Two Sorted Arrays
- LeetCode 4. Median of Two Sorted Arrays(两个有序数组的中位数)
- 算法练习4.Median of Two Sorted Arrays两个有序数组的中位数(递归、分治)
- 4. Median of Two Sorted Arrays(两个有序数组的中位数)
- 4. Median of Two Sorted Arrays 两个有序数组的中位数
- 【LeetCode 4. Median of Two Sorted Arrays】两个有序数组的中位数求解
- 【LeetCode】4. Median of Two Sorted Arrays两个有序数组的中位数
- Median of Two Sorted Arrays - 寻找两个有序数组的中位数(重)
- LeetCode OJ 之 Median of Two Sorted Arrays(两个有序数组的中位数)
- 两个有序数组的中位数Median of Two Sorted Arrays(很重要)
- Median of Two Sorted Arrays(两个有序数组的中位数)
- Median of Two Sorted Arrays 两个有序数组的中位数@LeetCode
- Median of Two Sorted Arrays 两个有序数组的中位数@LeetCode
- [leetcode] Median of Two Sorted Arrays 寻找两个有序数组的中位数
- [Leetcode #4]Median of Two Sorted Arrays 计算两个有序数组的中位数
- [LeetCode] Median of Two Sorted Arrays 两个有序数组的中位数
- LeetCode OJ:Median of Two Sorted Arrays(两个有序数组的中位数)
- Median of Two Sorted Arrays 两个数组的中位数
- 怎么在CentOs上安装JDK?
- 工作中常用的那些摘要/哈希/散列算法
- 一般算数表达式转换成后缀式问题
- Eslint代码检查
- Layout POJ
- 4. Median of Two Sorted Arrays(两个有序数组的中位数)
- Java 基础接口
- 获取开机时长与开机时间
- Python笔记Day4
- 线段树(加法和乘法的模板)
- java自定义功能去除字符串两端的空格
- 爬虫基础
- 【数据结构与算法】栈和队列 备忘
- 167. Two Sum II