Leetcode 4. Median of Two Sorted Arrays[Hard]
来源:互联网 发布:编程语言历史发展 编辑:程序博客网 时间:2024/06/14 19:46
原题地址
题目内容
题目分析
看到题目第一眼想到的就是采用merge的做法,将两个数列从第一个开始比较排序,不过这样的做法复杂度就变为O(n),不符合题目的要求。后面参考了leetcode上面的discuss以及别人的博客,就采用了分治的做法,主要思想就是求数列中第k大的数。
举个例子
代码实现
double getkth(int* nums1, int size1, int* nums2, int size2,int k){ if(size1 == 0){ return nums2[k-1]; } if(size2 == 0){ return nums1[k-1]; } if(k == 1){ return nums1[0]<nums2[0]?nums1[0]:nums2[0]; } int i = size1<(k/2)?size1:(k/2); int j = size2<(k/2)?size2:(k/2); if(nums1[i-1] > nums2[j-1]){ return getkth(nums1,size1,nums2+j,size2-j,k-j); } else return getkth(nums1+i,size1-i,nums2,size2,k-i);}double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) { int tot = nums1Size + nums2Size; if(tot % 2 == 0){ return (getkth(nums1, nums1Size, nums2, nums2Size,tot/2)+getkth(nums1,nums1Size,nums2,nums2Size,tot/2+1))/2.0; }else{ return getkth(nums1, nums1Size, nums2, nums2Size,tot/2+1); }}
阅读全文
0 0
- leetcode 4. Median of Two Sorted Arrays(Hard)
- Leetcode 4. Median of Two Sorted Arrays (Hard) (cpp)
- LeetCode 4. Median of Two Sorted Arrays(Hard)
- LeetCode hard 4. Median of Two Sorted Arrays
- Leetcode解题笔记 4.Median of Two Sorted Arrays [Hard]
- Leetcode 4. Median of Two Sorted Arrays[Hard]
- 4. Median of Two Sorted Arrays Hard
- 4. Median of Two Sorted Arrays Hard
- <LeetCode><Hard> 4 Median of Two Sorted Arrays
- LeetCode第四关:Median of Two Sorted Arrays --> Difficulty: Hard
- [LeetCode]4.Median of Two Sorted Arrays
- LeetCode 4. Median of Two Sorted Arrays
- LeetCode --- 4. Median of Two Sorted Arrays
- [Leetcode] 4. Median of Two Sorted Arrays
- [LeetCode]4.Median of Two Sorted Arrays
- 【leetcode】4. Median of Two Sorted Arrays
- Leetcode-4.Median of Two Sorted Arrays
- LeetCode-4.Median of Two Sorted Arrays
- HTML和CSS
- java的String类中的方法
- spring boot集成mysql(二)
- 算法分析——分治思想之合并排序
- VS2013+Qt5.7.1调用第三方库
- Leetcode 4. Median of Two Sorted Arrays[Hard]
- mqtt实现自动监听服务器消息
- gradle 如何引入constraintlayout依赖
- C++数组连接求能被7整除的数
- java,jsp当前上下文是什么意思
- 今年暑假不AC(贪心)
- [题解] HDU 2196 Computer(树型DP)
- 使用MDK3把指定的用户或者热点踢到掉线
- 最小生成树算法(上)——Prim(普里姆)算法