LeetCode——Median of Two Sorted Arrays
2015-09-19 10:09
274 查看
题目
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)).思路
这个不会,我就只想到了先把两个排成一个的,然后再选中位数。但这显然是最蠢的方法了。再想其他的方法的时候,自己想偏了,想通过两个列表的中位数锁定范围然后再找,但是依然不是很好实现。最后只能求助网上各大神的方法。我参考的该文:Leetcode 4 Median of Two Sorted Arrays
大家也可以去看一下。
解法
非常讨厌C,所以我用其他语言写了代码class Solution(object): def findKth(self,a,b,k): if len(a)>len(b): return self.findKth(b,a,k) if len(a)==0: return b[k -1] if k==1: return min(a[0],b[0]) pa = min(k/2,len(a)) pb = k - pa if a[pa-1]<b[pb-1]: return self.findKth(a[pa:],b,k-pa) elif a[pa-1]>b[pb-1]: return self.findKth(a,b[pb:],k-pb) else: return a[pa-1] def findMedianSortedArrays(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: float """ total = len(nums1)+len(nums2) if total&0x1: return self.findKth(nums1,nums2,total/2+1) else: return (self.findKth(nums1,nums2,total/2) +self.findKth(nums1,nums2,total/2+1))/2.0
相关文章推荐
- 解决adb command not found以及sdk环境配置
- html
- HDU 5023(区间更新/状态压缩)
- 《软工视频之宏观把握》
- PAT-PAT (Advanced Level) Practise 1101 Quick Sort (25)【二星级】
- Storyboard全解析-第一部分
- 音乐播放器(上)
- Java知识整理(六)之SE.集合框架
- 点击单个cell高度变化的动画效果
- Mysql 外网访问控制
- 记录一次EasyUI 的treegrid优化实践
- LeetCode283——Move Zeroes我的解法
- Java程序猿8大排序算法
- Calculator
- Java知识整理(五)之SE.(Date+SimpleDateFormat+Calendar)
- 要看清的不是别人,要先看清自己
- HDU 1698(线段树 区间更新)
- block应用与保留环
- CentOS Ping 755 644 查找并删除
- 霓歌即时通讯中的相关专利整理(十一)