LeetCode-Median of Two Sorted Arrays
2014-08-19 14:55
246 查看
There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall
run time complexity should be O(log (m+n)).
Solution:
Code:
<span style="font-size:14px;">class Solution {
public:
double findK (int A[], int m, int B[], int n, int k) {
if (m == 0) return B[k-1];
if (n == 0) return A[k-1];
if (k == 1) return min(A[0], B[0]);
if (m > n) return findK(B, n, A, m, k);
int kA = min(m, k/2);
int kB = k-kA;
if (A[kA-1] == B[kB-1]) return A[kA-1];
else if (A[kA-1] < B[kB-1]) return findK(A+kA, m-kA, B, n, k-kA);
else return findK(A, m, B+kB, n-kB, k-kB);
}
double findMedianSortedArrays(int A[], int m, int B[], int n) {
if ((m+n)%2) return findK(A, m, B, n, (m+n)/2+1);
else return (findK(A, m, B, n, (m+n)/2)+findK(A, m, B, n, (m+n)/2+1))/2;
}
};</span>
run time complexity should be O(log (m+n)).
Solution:
Code:
<span style="font-size:14px;">class Solution {
public:
double findK (int A[], int m, int B[], int n, int k) {
if (m == 0) return B[k-1];
if (n == 0) return A[k-1];
if (k == 1) return min(A[0], B[0]);
if (m > n) return findK(B, n, A, m, k);
int kA = min(m, k/2);
int kB = k-kA;
if (A[kA-1] == B[kB-1]) return A[kA-1];
else if (A[kA-1] < B[kB-1]) return findK(A+kA, m-kA, B, n, k-kA);
else return findK(A, m, B+kB, n-kB, k-kB);
}
double findMedianSortedArrays(int A[], int m, int B[], int n) {
if ((m+n)%2) return findK(A, m, B, n, (m+n)/2+1);
else return (findK(A, m, B, n, (m+n)/2)+findK(A, m, B, n, (m+n)/2+1))/2;
}
};</span>
相关文章推荐
- leetcode Median of Two Sorted Arrays
- [leetcode]Median of Two Sorted Arrays
- leetcode 26: Median of Two Sorted Arrays
- LeetCode: Median of Two Sorted Arrays
- LeetCode题目笔记(三) -- Median of Two Sorted Arrays
- LeetCode 4 - Median of Two Sorted Arrays
- [leetcode] Median of Two Sorted Arrays
- [LeetCode] Median of Two Sorted Arrays 解题报告
- LeetCode: Median of Two Sorted Arrays
- LeetCode刷题笔录 Median Of Two Sorted Arrays
- LeetCode Online Judge 题目C# 练习 - Median of Two Sorted Arrays
- leetCode_Median of Two Sorted Arrays
- LeetCode: Median of Two Sorted Arrays
- leetcode 26: Median of Two Sorted Arrays
- LeetCode Median of Two Sorted Arrays
- LeetCode-Median of Two Sorted Arrays
- Median of Two Sorted Arrays-----LeetCode
- [LeetCode题解004]Median of Two Sorted Arrays
- LeetCode —— Median of Two Sorted Arrays
- leetcode-004:Median of Two Sorted Arrays