public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        if (nums1 == null || nums1.length == 0) {
            if (nums2 == null || nums2.length == 0) {
                return 0;
            } else {
                return nums2.length % 2 == 0 ? ((nums2[nums2.length / 2] + nums2[nums2.length / 2 - 1]) / 2.0) : (nums2[nums2.length / 2]);
            }
        } else {
            if (nums2 == null || nums2.length == 0) {
                return nums1.length % 2 == 0 ? ((nums1[nums1.length / 2] + nums1[nums1.length / 2 - 1]) / 2.0) : (nums1[nums1.length / 2]);
            }
        }

        int total = nums1.length + nums2.length;
        if (total % 2 == 0) {
            return (findKth(nums1, nums2, total / 2) + findKth(nums1, nums2, total / 2 + 1)) / 2.0;
        } else {
            return findKth(nums1, nums2, total / 2 + 1);
        }
    }