Возможно, я не правильно понял, что вы намеревались сделать, но я думаю, что ваша проблема связана с этим:
if(nums1.length > nums2.length) {
findMedianSortedArrays(nums2, nums1);
}
Я полагаю, что ваш метод работает, если nums1.length
<= <code>nums2.length,если нет, просто позвоните после замены параметров.
Проблема, когда это происходит, состоит в том, что вы ничего не делаете с возвращаемым значением (оно успешно выполнено, поэтому выдает ???
), и что вы потом продолжаете с неправильными параметрами и в конечном итоге бросаете IndexOutOfBoundException
.
Чтобы исправить это, нужно просто вернуть значение с параметрами в ожидаемом порядке:
if(nums1.length > nums2.length) {
return findMedianSortedArrays(nums2, nums1);
}