算法课第十五周作业 | Median of Two Sorted Arrays
2017-06-04 18:23
267 查看
写在前面:
选取leetcode的第4题,使用排序的方法解题。
题意解读:
给定两个整数数组,两个数组的大小不一样,求这两个数组集合的中位数。
如果数组集合是偶数,则中位数是中间两个数的平均值,如果是奇数个,则中位数就是最中间的一个。
要求计算复杂度不要找过O(log(m+n)),其中m,n分布是两个数组的个数。
解题思路:
现将两个数组合并为一个,放进all里,用vector容器的sort函数进行排序,
sort函数采用的快速排序算法,是目前最快的排序算法。
接着判断(m+n)的奇偶性,返回相应的结果。
代码:
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
vector<int> all(nums1.begin(), nums1.end());
all.insert(all.begin(),nums2.begin(), nums2.end());
sort(all.begin(), all.end());
double result;
if((nums1.size() + nums2.size()) % 2 == 1)
{
int r = (nums1.size() + nums2.size()) /2;
result = all[r];
}
else
{
result = (double)(all[(nums1.size() + nums2.size()) /2] + all[(nums1.size() + nums2.size()) /2-1]) / 2;
}
return result;
}
};
选取leetcode的第4题,使用排序的方法解题。
题意解读:
给定两个整数数组,两个数组的大小不一样,求这两个数组集合的中位数。
如果数组集合是偶数,则中位数是中间两个数的平均值,如果是奇数个,则中位数就是最中间的一个。
要求计算复杂度不要找过O(log(m+n)),其中m,n分布是两个数组的个数。
解题思路:
现将两个数组合并为一个,放进all里,用vector容器的sort函数进行排序,
sort函数采用的快速排序算法,是目前最快的排序算法。
接着判断(m+n)的奇偶性,返回相应的结果。
代码:
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
vector<int> all(nums1.begin(), nums1.end());
all.insert(all.begin(),nums2.begin(), nums2.end());
sort(all.begin(), all.end());
double result;
if((nums1.size() + nums2.size()) % 2 == 1)
{
int r = (nums1.size() + nums2.size()) /2;
result = all[r];
}
else
{
result = (double)(all[(nums1.size() + nums2.size()) /2] + all[(nums1.size() + nums2.size()) /2-1]) / 2;
}
return result;
}
};
相关文章推荐
- 【算法分析与设计】【第二周】4.Median of Two Sorted Arrays
- 算法练习(3):Median of Two Sorted Arrays
- leetcode:Median of Two Sorted Arrays (找两个序列的中位数,O(log (m+n))限制) 【面试算法】
- 【LeetCode-面试算法经典-Java实现】【004-Median of Two Sorted Arrays(两个排序数组的中位数)】
- Median of Two Sorted Arrays (找两个序列的中位数,O(log (m+n))限制) 【面试算法leetcode】
- 算法分析与设计丨第三周丨LeetCode(5)——Median of Two Sorted Arrays(Hard)
- 算法第三周Median of Two Sorted Arrays[hard]
- 【算法】【Divide and conquer】Median of Two Sorted Arrays
- LeetCode算法题目:Median of Two Sorted Arrays
- 【算法导论学习-016】两个已排过序的等长数组的中位数(median of two sorted arrays)
- Leetcode平台上的Median of Two Sorted Arrays题目用Java堆算法实现
- Median_of_Two_Sorted_Arrays(理论支持和算法总结)
- 算法分析课每周练习 Median of Two Sorted Arrays
- (算法分析Week4)Median of Two Sorted Arrays[Hard]
- Median of Two Sorted Arrays
- [Leetcode] Median of Two Sorted Arrays
- [Leetcode] Median of Two Sorted Arrays
- Median of Two Sorted Arrays-----LeetCode
- Median of Two Sorted Arrays
- LeetCode: Median of Two Sorted Arrays