@@ -0,0 +1,1173 @@
+public class Solution %7B%0A    %0A    public double findKth(int%5B%5D arr1, int%5B%5D arr2, int start1, int start2, int len1, int len2, int k) %7B%0A        if (len1 %3E len2) %7B%0A            return findKth(arr2, arr1, start2, start1, len2, len1, k);%0A        %7D%0A        if (len1 == 0) %7B%0A            return arr2%5Bstart2+k-1%5D;%0A        %7D%0A        if (k == 1) %7B%0A            return Math.min(arr1%5Bstart1%5D, arr2%5Bstart2%5D);%0A        %7D%0A        int p1 = Math.min(k/2, len1);%0A        int p2 = k - p1;%0A        if (arr1%5Bstart1+p1-1%5D %3C arr2%5Bstart2+p2-1%5D) %7B%0A            return findKth(arr1, arr2, start1+p1, start2, len1-p1, len2, k-p1); %0A        %7D else if (arr1%5Bstart1+p1-1%5D %3E arr2%5Bstart2+p2-1%5D) %7B%0A            return findKth(arr1, arr2, start1, start2+p2, len1, len2-p2, k-p2);%0A        %7D else %7B%0A            return arr1%5Bstart1+p1-1%5D;%0A        %7D%0A    %7D%0A    %0A    public double findMedianSortedArrays(int%5B%5D nums1, int%5B%5D nums2) %7B%0A        int m = nums1.length, n = nums2.length;%0A        if ((m+n)%252 == 0) %7B%0A            return (findKth(nums1, nums2, 0, 0, m, n, (m+n)/2) + findKth(nums1, nums2, 0, 0, m, n, (m+n)/2+1))/2;%0A        %7D else %7B%0A            return findKth(nums1, nums2, 0, 0, m, n, (m+n)/2+1);%0A        %7D%0A    %7D%0A%7D 

Add Problem4