leetcode 4. Median of Two Sorted Arrays
来源:互联网 发布:翻墙instagram软件 编辑:程序博客网 时间:2024/06/05 00:23
寻找2个排序数组的中位数
也就是求第K大的数字
分割法:
k1=k2=K/2-1,即都分成一半(这里的k1 k2用于下标,故和数量相关的话要加1)
若分割下标比数组数量大,则取分割下标取数组最后一位
若nums1[k1]<nums2[k2]
那么数组1的前k1个可以舍去,接着求第K-k1-1大的数字
同理
若相等,看一下k1+k2+2是否刚好等于Kth,若相等,那么肯定就是这个数字
否则都剔除掉,继续求
int getKth(int l1,int l2,int Kth,vector<int> nums1, vector<int> nums2){int k,k1,k2;printf("l1=%d,l2=%d,Kth=%d\n",l1,l2,Kth);if(l1>=nums1.size()) //若nums1被剔除光了,则直接返回nums2的中位数return nums2[l2+Kth-1];if(l2>=nums2.size()) //若nums2被剔除光了,则直接返回nums1的中位数return nums1[l1+Kth-1];if(Kth==1) //若要找第一大的数字,返回最小的那个即可return nums1[l1]<nums2[l2]?nums1[l1]:nums2[l2];k1=k2=Kth/2-1; //找两个分割点k1,k2,刚开始默认为Kth/2-1 //k1和k2用于分割点下标,即[l1+k1],故不是第几大的意思if(k1>=nums1.size()) //若下标k1大于等于数组总数,则下标置为最大下标k1=nums1.size()-1;if(k2>=nums2.size()) //同理k2=nums2.size()-1;if(nums1[l1+k1]<nums2[l2+k2]) //剔除1数组前k1个return getKth(l1+k1+1,l2,Kth-k1-1,nums1,nums2);else if(nums1[l1+k1]>nums2[l2+k2]) //剔除2数组前k2个return getKth(l1,l2+k2+1,Kth-k2-1,nums1,nums2);else{if(k1+1+k2+1==Kth) //下标总和加2才是数量总数。若数量综述等于Kth,说明这2个相等的就是要找的return nums1[l1+k1];else return getKth(l1+k1+1,l2+k2+1,Kth-k1-k2-2,nums1,nums2); //否则就都剔除,然后找后面的}}double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {int n1,n2,k1,k2;double num1,num2;n1=nums1.size();n2=nums2.size();if((n1+n2)%2==1){k1=(n1+n2)/2+1;num1=getKth(0,0,k1,nums1,nums2);return num1;}else {k1=(n1+n2)/2;num1=getKth(0,0,k1,nums1,nums2);k2=(n1+n2)/2+1;num2=getKth(0,0,k2,nums1,nums2);return (num1+num2)/2;} }
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
- [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
- 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
- Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸
- android View介绍
- 植入百度地图(二)——实现定位及方向传感器
- PAT(乙级)1015 反转链表 (25)(有点问题)
- 第四章 医学图像的变换
- leetcode 4. Median of Two Sorted Arrays
- 微信支付移动支付的相关资料
- s2sh三大框架整合过程(仅供参考)
- Servlet 生命周期、工作原理
- PowerDesigner ER图 实体关联关系
- DELL presicionT3600重装系统心得技巧
- 关于 编译安装的lamp环境 php开启openssl 功能
- js实现的tooltip简单小组件
- uva 1639 Candy 大数的对数处理 数学期望