public static int findKth(int a[] ,int i , int b[] , int j,int k) { if(a.length - i > b.length - j) return findKth(b,j,a,i,k); if(a.length==i)return b[j + k - 1]; if(k == 1) return Math.min(a[i], b[j]); int si = Math.min(a.length, i + k/2); int sj = j + k / 2; if(a[si-1]>b[sj-1]) return findKth(a, i, b, j + k/2, k - k/2); //核心判断 else return findKth(a,si,b,j,k-(si-i)); }
点赞

相关推荐

牛客网
牛客企业服务