Home » Source Code » Leetcode the reference source code (Java) » MedianOfTwoSortedArrays.java

## MedianOfTwoSortedArrays.java ( File view )

• By issaczr 2014-10-24
• View(s)：52
• Point(s)： 1
```			// Author:   Li Long, 1988lilong@163.com
// Date:     Apr 17, 2014
// Source:   http://oj.leetcode.com/problems/median-of-two-sorted-arrays/
// Analysis: http://blog.csdn.net/lilong_dream/article/details/19355465

// 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)).

import java.util.Arrays;

public class MedianOfTwoSortedArrays {

public double findMedianSortedArrays(int A[], int B[]) {

// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
int m = A.length;
int n = B.length;
int total = m + n;
if ((total & 0x01) != 0) {

return find_kth(A, m, B, n, total / 2 + 1);

} else {

return (find_kth(A, m, B, n, total / 2) + find_kth(A, m, B, n,
total / 2 + 1)) / 2.0;

}

}

public double find_kth(int A[], int m, int B[], int n, int k) {

if (m > n) {

return find_kth(B, n, A, m, k);

}
if (m == 0) {

return B[k - 1];

}
if (k == 1) {

return Math.min(A[0], B[0]);

}

int pa = Math.min(k / 2, m);
int pb = k - pa;
if (A[pa - 1] < B[pb - 1]) {

return find_kth(Arrays.copyOfRange(A, pa, A.length), m - pa, B, n,
k - pa);

} else if (A[pa - 1] > B[pb - 1]) {

return find_kth(A, m, Arrays.copyOfRange(B, pb, B.length), n - pb,
k - pb);

} else {

return A[pa - 1];

}

}

public static void main(String[] args) {

int[] A = {
1, 3
};
int[] B = {
2, 4
};
MedianOfTwoSortedArrays slt = new MedianOfTwoSortedArrays();
double result = slt.findMedianSortedArrays(A, B);
System.out.println(result);

}

}			```
...
Expand＞ ＜Close

Point(s): 1

0 lines left, continue to read

## File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
01.97 kB
01.97 kB
BinaryTreePreorderTraversal.java1.91 kB2014-05-09 03:48
ClimbingStairs.java811.00 B2014-05-09 03:48
EvaluateReversePolishNotation.java1.51 kB2014-05-09 03:48
GenerateParentheses.java1.15 kB2014-05-09 03:48
ImplementStrStr.java1.00 kB2014-05-09 03:48
InsertionSortList.java1.64 kB2014-05-09 03:48
IntegerToRoman.java923.00 B2014-05-09 03:48
LengthOfLastWord.java1.11 kB2014-05-09 03:48
LongestCommonPrefix.java916.00 B2014-05-09 03:48
LongestSubstring.java1.79 kB2014-05-09 03:48
MaximumSubarray.java1.10 kB2014-05-09 03:48
MedianOfTwoSortedArrays.java1.68 kB2014-05-09 03:48
MergeSortedArray.java1.12 kB2014-05-09 03:48
MergeTwoSortedLists.java1.84 kB2014-05-09 03:48
MinimumPathSum.java1.19 kB2014-05-09 03:48
PathSum.java1.67 kB2014-05-09 03:48
PlusOne.java1.06 kB2014-05-09 03:48
Powxn.java712.00 B2014-05-09 03:48
RemoveDuplicatesFromSortedList.java1.48 kB2014-05-09 03:48
RemoveDuplicatesfromSortedArray.java1.30 kB2014-05-09 03:48
RemoveElement.java885.00 B2014-05-09 03:48
RemoveNthNodeFromEnd.java1.70 kB2014-05-09 03:48
ReverseInteger.java936.00 B2014-05-09 03:48
RotateList.java1.53 kB2014-05-09 03:48
SameTree.java1.15 kB2014-05-09 03:48
SearchForARange.java1.37 kB2014-05-09 03:48
SearchInRotatedSortedArray.java1.27 kB2014-05-09 03:48
SearchInsertPosition.java1.09 kB2014-05-09 03:48
SetMatrixZeroes.java1.95 kB2014-05-09 03:48
SingleNumber.java935.00 B2014-05-09 03:48
SortList.java1.75 kB2014-05-09 03:48
Sqrt.java907.00 B2014-05-09 03:48
StringToInteger_atoi.java1.46 kB2014-05-09 03:48
Sum3.java1.76 kB2014-05-09 03:48
TwoSum.java2.33 kB2014-05-09 03:48
UniqueBinarySearchTrees.java1.01 kB2014-05-09 03:48
UniquePaths.java976.00 B2014-05-09 03:48
UniquePathsII.java1.84 kB2014-05-09 03:48
ValidParentheses.java1.23 kB2014-05-09 03:48
ValidateBinarySearchTree.java1.44 kB2014-05-09 03:48
...
• Sent successfully!
• LeetCode-Java-master.zip
• 1 point

### MedianOfTwoSortedArrays.java (35.66 kB)

Need 1 point

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

Don't have an account？ Register now
Need any help?
Mail to: support@codeforge.com

### 切换到中文版？

CodeForge Chinese Version
CodeForge English Version

### ^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!

### Warm tip!

Favorite by Ctrl+D