由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 贡献一个Median of two sorted arrays的java code
相关主题
Find Median Of Two Sorted Arraysfind median for k sorted arrays
跪了,Median of Two Sorted Arrays 问题求解把问题简化吧,找2个sorted array的median
median of two sorted arrays的时间复杂度(附上了过了oj的代码)找第K个最小的元素
百思不得其解的一道题目刷题刷到没自信了
问到题优步面试,哎。。。
请教一个题: Median of Two Sorted Arrays两个sorted array找median
Median of Two Sorted Arrays一个算法题:Selecting median of three sorted arrays
请帖个Median of Two Sorted Arrays的好解法?找2个sorted array中的第K小的元素,有O(lgn)方法吗?
相关话题的讨论汇总
话题: ista话题: imid话题: int话题: iend话题: findkth
进入JobHunting版参与讨论
1 (共1页)
B*****7
发帖数: 137
1
通过了leetcode 的大小OJ. 基于findKth, 好处是只有三个简单的special cases。没
有以前一个大牛的C++解法简洁,但也不是特别的麻烦。
code如下:
//-------------------------------------------------------------------
public class Solution {
public double findMedianSortedArrays(int A[], int B[]) {
int m = A.length;
int n = B.length;
if( (m + n) % 2 != 0 ) // odd number of total elements
return (double)findKth(A, B, (m + n) / 2, 0, m-1, 0, n-1);
else { // even
return ( findKth(A, B, (m + n) / 2, 0, m-1, 0, n-1) +
findKth(A, B, (m + n) / 2 - 1, 0, m-1, 0, n-1) ) * 0.5;
}
}
public static int findKth(int A[], int B[], int k,
int ista_A, int iend_A, int ista_B, int iend_B) {
int nA = iend_A - ista_A + 1;
int nB = iend_B - ista_B + 1;
// Special cases
if( nA == 0 ) return B[ista_B + k];
if( nB == 0 ) return A[ista_A + k];
if( k == 0) return A[ista_A] < B[ista_B] ? A[ista_A] : B[ista_B];
// Reduce search ranges in A and B
int imid_A = nA * k / (nA + nB);
int imid_B = k - imid_A - 1;
// Add offset so that imid_A and imid_B index directly into A and B,
// respectively
imid_A += ista_A;
imid_B += ista_B;
if( A[imid_A] > B[imid_B] ) {
k -= imid_B - ista_B + 1;
iend_A = imid_A;
ista_B = imid_B + 1;
} else {
k -= imid_A - ista_A + 1;
iend_B = imid_B;
ista_A = imid_A + 1;
}

return findKth(A, B, k, ista_A, iend_A, ista_B, iend_B);
}
}
1 (共1页)
进入JobHunting版参与讨论
相关主题
找2个sorted array中的第K小的元素,有O(lgn)方法吗?问到题
median of an array of ints, 请问这题的经典回答是什么?谢谢请教一个题: Median of Two Sorted Arrays
这个题目的比较好的方法是什么?Median of Two Sorted Arrays
sleetcode上Median of Two Sorted Arrays这个题也太复杂了。。请帖个Median of Two Sorted Arrays的好解法?
Find Median Of Two Sorted Arraysfind median for k sorted arrays
跪了,Median of Two Sorted Arrays 问题求解把问题简化吧,找2个sorted array的median
median of two sorted arrays的时间复杂度(附上了过了oj的代码)找第K个最小的元素
百思不得其解的一道题目刷题刷到没自信了
相关话题的讨论汇总
话题: ista话题: imid话题: int话题: iend话题: findkth