java,寻找两个正序数组的中位数,数组越界

问题:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

代码如下:


class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        
        int sum=nums1.length+nums2.length-1;
        int sums=sum%2;
        int nums3[]=new int[sum];
        int i=0;
        int j=0;
        for(int k=0;k<=sum;k++){
            if(nums1[i]>nums2[j]){
                nums3[k]=nums2[j];
                j++;
                if(j>nums2.length){
                    j--;
                }
            }
            else{
                nums3[k]=nums1[i];
                i++;
                if(i>nums1.length){
                    i--;
                }
            }
        }

        if(sums==1){
            double b=nums3[sum/2+1];
            return b;
        }
        else{
            double b=(nums3[sum/2]+nums3[sum/2+1])/2;
            return b;
        }
    }
}

输入:nums1 = [1,3], nums2 = [2]
输出:2.00000

我实在想不到该怎么改了,求帮助,谢谢