Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:不兼容的类型:尝试合并两个已排序数组时,无法将int[]转换为int_Java - Fatal编程技术网

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

Java 错误:不兼容的类型:尝试合并两个已排序数组时,无法将int[]转换为int,java,Java,尝试将两个已排序的数组合并在一起,但我收到一个错误: 错误:不兼容的类型:int[]无法转换为int 我做了一些研究,但我真的不明白为什么会发生这种情况。我知道我的程序在排序数组方面有问题,但我不确定修复方法是什么 这是我的密码: public class MedianOfTwoSortedArrays { //[1,2],{3,4} static int[] nums1 = new int[]{1, 3}; static int[] nums2 = new in

尝试将两个已排序的数组合并在一起,但我收到一个错误:

错误:不兼容的类型: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[])
    {
        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,2],{3,4}
静态int[]nums1=新int[]{1,3};
静态int[]nums2=新int[]{2};
公共静态void main(字符串参数[])
{
System.out.println(findmediansortedarray(nums1,nums2));
}
公共静态int findMediaTransortedArray(int[]nums1,int[]nums2)
{
int[]排序=新int[nums1.length+nums2.length];
int i=0,j=0,k=0;
而(i
快速修复!只需将您的返回声明更改为:

  return sorted[sorted.length / 2];
返回的是int[](排序数组),而不是排序数组的中值


我使用偶数个元素进行测试,它返回两个中间值中的第一个,仅供参考。如果愿意,可以在方法开始时验证组合长度是否为奇数。奇数工程如预期。请不要忘记接受

快速修复!只需将您的返回声明更改为:

  return sorted[sorted.length / 2];
返回的是int[](排序数组),而不是排序数组的中值


我使用偶数个元素进行测试,它返回两个中间值中的第一个,仅供参考。如果愿意,可以在方法开始时验证组合长度是否为奇数。奇数工程如预期。请不要忘记接受

您返回的是数组,并且您的方法显示int,因为这段代码甚至无法编译。使用

public static int[] findMedianSortedArrays(int[] nums1, int[] nums2)
而不是

public static int findMedianSortedArrays(int[] nums1, int[] nums2)

您还必须在main方法中迭代结果数组以打印值。

您返回的是数组,并且您的方法显示int,因此代码甚至无法编译。使用

public static int[] findMedianSortedArrays(int[] nums1, int[] nums2)
而不是

public static int findMedianSortedArrays(int[] nums1, int[] nums2)

您还必须迭代main方法中的结果数组来打印值。

您所犯的第一个错误是返回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;
            }

    }
公共类媒体
{   
//[1,2],{3,4}
静态int[]nums1=新int[]{1,3};
静态int[]nums2=新int[]{2};
公共静态void main(字符串参数[])
{
int a[]=findMediansortedarray(nums1,nums2);

对于(inti=0;i来说,您所犯的第一个错误是返回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;
            }

    }
公共类媒体
{   
//[1,2],{3,4}
静态int[]nums1=新int[]{1,3};
静态int[]nums2=新int[]{2};
公共静态void main(字符串参数[])
{
int a[]=findMediansortedarray(nums1,nums2);

对于(int i=0;由于返回类型不兼容,iCode甚至无法编译。您可能正在使用修改方法签名的版本。这是我编译的代码,具有预期的行为。仅做了更改。偶数长度的数组没有两个中间值—请查找。@ajb然后他们可以编写代码来检查长度。我是simply显示其语法无效的位置。验证长度是否为奇数是一个完全不同的问题。我确实说过“两个中间值中的第一个”不过一开始。谢谢。由于返回类型不兼容,代码甚至无法编译。您可能正在使用修改方法签名的版本。这是我以预期行为编译的代码。仅做了更改。长度为偶数的数组没有两个中间值--请查找。@ajb然后他们可以编写代码来检查t长度。我只是简单地说明了它们的语法无效的位置。验证长度是否为奇数是一个完全不同的问题。但我一开始确实说了“两个中间值中的第一个”。谢谢。返回int[]违反了预期的方法行为。他们试图获取单个中值,而不是排序数组。返回int[]违反预期的方法行为。他们试图获取单个中值,而不是排序数组。在哪一行检测到错误?在哪一行检测到错误?