4. Median of Two Sorted Arrays
来源:互联网 发布:长江师范学院网络教学 编辑:程序博客网 时间:2024/06/07 03:48
在寻找两个已经排好序的数组的第k小的元素的时候参考了下面一篇博客
http://blog.csdn.net/beiyeqingteng/article/details/7533304/
class Solution {private: int findK(vector<int>& nums1,int pa,vector<int>& nums2,int setpa,int k) { int pb=k-1-pa; int PA_1=(pa==0)?INT_MIN:nums1[pa-1]; int PB_1=(pb==0)?INT_MIN:nums2[pb-1]; int PA=(pa==nums1.size())?INT_MAX:nums1[pa]; int PB=(pb==nums2.size())?INT_MAX:nums2[pb]; if(PA>=PB_1&&PB>=PA) return PA; if(PB>=PA_1&&PA>=PB) return PB; if(PA>PB) { pa=((k-1-(pa-setpa))>nums2.size())?(k-1-nums2.size()):(pa-setpa); return findK(nums1,pa,nums2,(setpa+1)/2,k); } else { pa=((pa+setpa)>nums1.size())?nums1.size():pa+setpa; return findK(nums1,pa,nums2,(setpa+1)/2,k); } }public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int l1=nums1.size(); int l2=nums2.size(); int l=l1+l2; if(l%2==0) { int k=l/2; int pa=min((int)nums1.size(),k-1); int target1=findK(nums1,pa,nums2,(pa+1)/2,k); k=l/2+1; pa=min((int)nums1.size(),k-1); int target2=findK(nums1,pa,nums2,(pa+1)/2,k); return (target1+target2)/2.0; } else { int k=(l+1)/2; int pa=min((int)nums1.size(),k-1); return findK(nums1,pa,nums2,(pa+1)/2,k)*1.0; } }};
0 0
- [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
- 4.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
- 4. Median of Two Sorted Arrays
- 【leetcode】4. Median of Two Sorted Arrays
- Leetcode-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
- leetcoode 4. Median of Two Sorted Arrays
- Leetcode 4. Median of Two Sorted Arrays
- leetcode 4. Median of Two Sorted Arrays
- ajax库类以及使用方法
- 【Android】27、常见控件的使用方法——TextView
- 网站常用效果
- 常见的八种导致 APP 内存泄漏的问题
- typedef的用法
- 4. Median of Two Sorted Arrays
- 数组部分元素反转--三次翻转法
- js上传文件(图片)限制格式及大小为3M · 观止
- org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder
- windows和linux下的文件路径表示小结
- valgrind 的使用简介
- 记Android Studio自定义属性访问不了的问题
- 旋转数组的最小值---二分思想
- UIScrollView添加AutoLayout的ambiguous content size警告解决方法