当前位置: 首页 > 知识库问答 >
问题:

错误:不兼容的类型:尝试合并两个数组时,int[]无法转换为int

宇文学博
2023-03-14

试图将两个数组合并在一起,但收到一个错误:

public class MedianOfTwoSortedArrays 
{   
    //[1,2],{3,4}
    static int[] nums1 = new int[]{1, 3};
    static int[] nums2 = new int[]{2};


    public static void main(String args[])
    {
        System.out.println(findMedianSortedArrays(nums1, nums2));
    }

        public static int findMedianSortedArrays(int[] nums1, int[] nums2) 
        {
            int[] sorted = new int[nums1.length + nums2.length];
            int i = 0, j = 0, k = 0;

            while (i < nums1.length && j < nums2.length)
            {
                if (nums1[i] < nums2[j])
                {
                    sorted[k] = nums1[i];
                    i++;
                }
                else
                {
                    sorted[k] = nums2[j];
                    j++;
                }
                k++;
            }

            while (i < nums1.length)
            {
                sorted[k] = nums1[i];
                i++;
                k++;
            }

            while (j < nums2.length)
            {
                sorted[k] = nums2[j];
                j++;
                k++;
            }

            return sorted;
        }

}

共有1个答案

壤驷旭
2023-03-14

您正在做的第一个错误是,您返回的是int数组,而您的方法返回类型是int。

    public class MedianOfTwoSortedArrays 
    {   
        //[1,2],{3,4}
        static int[] nums1 = new int[]{1, 3};
        static int[] nums2 = new int[]{2};


        public static void main(String args[])
        {
            int a[] = findMedianSortedArrays(nums1, nums2);

            for(int i=0;i<a.length;i++){
                System.out.println(a[i]);
            }
          }

            public static int[] findMedianSortedArrays(int[] nums1, int[] nums2) 
            {
                int[] sorted = new int[nums1.length + nums2.length];
                int i = 0, j = 0, k = 0;

                while (i < nums1.length && j < nums2.length)
                {
                    if (nums1[i] < nums2[j])
                    {
                        sorted[k] = nums1[i];
                        i++;
                    }
                    else
                    {
                        sorted[k] = nums2[j];
                        j++;
                    }
                    k++;
                }

                while (i < nums1.length)
                {
                    sorted[k] = nums1[i];
                    i++;
                    k++;
                }

                while (j < nums2.length)
                {
                    sorted[k] = nums2[j];
                    j++;
                    k++;
                }

                return sorted;
            }

    }

您必须将结果存储在数组中并在其上循环。

 类似资料: