public double findMedianSortedArrays(int A[], int B[]) {
int aLen = A.length;
int bLen = B.length;
int tLen = aLen + bLen;
int[] arr = new int[tLen];
int idx = 0, aIdx = 0, bIdx = 0;
for (; aIdx < aLen && bIdx < bLen;) {
if (A[aIdx] <= B[bIdx]) {
arr[idx++] = A[aIdx++];
} else {
arr[idx++] = B[bIdx++];
}
}
if (aIdx < aLen) {
for (; aIdx < aLen;)
arr[idx++] = A[aIdx++];
}
if (bIdx < bLen) {
for (; bIdx < bLen;)
arr[idx++] = B[bIdx++];
}
if ((tLen & 1) == 1) {
return arr[tLen / 2];
} else {
return ((double) (arr[tLen / 2 - 1] + arr[tLen / 2])) / 2;
}
}
2013년 2월 6일 수요일
Median of Two Sorted Arrays
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기