两个排序数组的中位数
2018-01-27 09:46
267 查看
两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出数组A = [1,2,3,4,5,6] B = [2,3,4,5],中位数3.5
给出数组A = [1,2,3] B = [4,5],中位数 3
class Solution {
public:
/*
* @param A: An integer array
* @param B: An integer array
* @return: a double whose format is *.5 or *.0
*/
double findMedianSortedArrays(vector<int> &A, vector<int> &B) {
// write your code here
for(int i=0;i<B.size();i++){
A.push_back(B[i]);//将B数组中的元素给A;
}
sort(A.begin(), A.end());//对A数组进行排序
double m,n;
if(A.size()%2==0){//偶数个元素时
m=A[A.size()/2];
n=A[(A.size()/2)-1];
return (m+n)/2.0;
}else{//奇数个元素时
return A[A.size()/2];
}
}
};
您在真实的面试中是否遇到过这个题?
Yes
样例
给出数组A = [1,2,3,4,5,6] B = [2,3,4,5],中位数3.5
给出数组A = [1,2,3] B = [4,5],中位数 3
class Solution {
public:
/*
* @param A: An integer array
* @param B: An integer array
* @return: a double whose format is *.5 or *.0
*/
double findMedianSortedArrays(vector<int> &A, vector<int> &B) {
// write your code here
for(int i=0;i<B.size();i++){
A.push_back(B[i]);//将B数组中的元素给A;
}
sort(A.begin(), A.end());//对A数组进行排序
double m,n;
if(A.size()%2==0){//偶数个元素时
m=A[A.size()/2];
n=A[(A.size()/2)-1];
return (m+n)/2.0;
}else{//奇数个元素时
return A[A.size()/2];
}
}
};
相关文章推荐
- 【转载】两个排序数组的中位数 / 第K大元素(Median of Two Sorted Arrays)
- 两个排序数组的中位数
- 【LeetCode】004 Median of Two Sorted Arrays 两个排序数组合并后的中位数
- 两个排序数组的中位数
- 找出两个已排序且同序大小相等的数组的中位数C语言
- 求两个或多个已排序数组的中位数
- [各种面试题] 两个排序数组的中位数
- LeetCodeLeetCode 两个排序数组的中位数问题
- 【LeetCode】4. 两个排序数组的中位数 结题报告 (C++)
- 求两个大小为n的已排序数组的中位数
- Arithmetic problem | 求两个排序数组的中位数
- 【算法】【分治】两个排序数组的中位数
- 两个排序数组的中位数
- 两个排序数组的中位数
- leetcode解题之4. Median of Two Sorted Arrays java (两个排序数组的中位数)
- 2.Median of Two Sorted Arrays (两个排序数组的中位数)
- 找到两个排序数组的中位数
- 算法:两个排序数组的中位数
- 【leetcode】两个排序数组的中位数
- Leetcode 4. 两个排序数组的中位数