(int[] nums1, int m, int[] nums2, int n, int k)
| 18 | } |
| 19 | |
| 20 | private int helper(int[] nums1, int m, int[] nums2, int n, int k) { |
| 21 | if (m >= nums1.length) return nums2[n + k - 1]; |
| 22 | if (n >= nums2.length) return nums1[m + k - 1]; |
| 23 | if (k == 1) return Math.min(nums1[m], nums2[n]); |
| 24 | |
| 25 | int p1 = m + k / 2 - 1; |
| 26 | int p2 = n + k / 2 - 1; |
| 27 | int mid1 = p1 < nums1.length ? nums1[p1] : Integer.MAX_VALUE; |
| 28 | int mid2 = p2 < nums2.length ? nums2[p2] : Integer.MAX_VALUE; |
| 29 | if (mid1 < mid2) { |
| 30 | return helper(nums1, m + k / 2, nums2, n, k - k / 2); |
| 31 | } |
| 32 | return helper(nums1, m, nums2, n + k / 2, k - k / 2); |
| 33 | } |
| 34 | |
| 35 | public static void main(String[] args) { |
| 36 | Solution solution = new Solution(); |
no outgoing calls
no test coverage detected