errors数组整数元素java的总和

时间:2016-05-01 09:32:43

标签: java

我无法在这里找到错误告诉我的内容:

filtered = (...)

错误是:

class Ideone {
public static void main (String[] args) throws java.lang.Exception
{
    twoSum({2,4,7},9);
}
public static int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
    for (int j = i + 1; j < nums.length; j++) {
        if (nums[j] == target - nums[i]) {
            return new int[] { i, j };
        }
    }
}
throw new IllegalArgumentException("No two sum solution");
}
}

我认为声明是好的,那么如何更改以使此功能正常工作?

4 个答案:

答案 0 :(得分:4)

{2,4,7}只能用于数组的声明,例如:

int[] arr = {2,4,7};

要将此类数组作为参数传递给方法,请使用

twoSum(new int[] {2,4,7},9);

答案 1 :(得分:2)

通过更改

传递数组而不是写一些非法的东西
twoSum({2,4,7},9);

twoSum(new int[]{2,4,7},9);

答案 2 :(得分:0)

你走了:

  class Ideone {
    public static void main (String[] args) throws java.lang.Exception
    {
        twoSum(new int[] {2,4,7},9);
    }
    public static int[] twoSum(int[] nums, int target) {
    for (int i = 0; i < nums.length; i++) {
        for (int j = i + 1; j < nums.length; j++) {
            if (nums[j] == target - nums[i]) {
                return new int[] { i, j };
            }
        }
    }
    throw new IllegalArgumentException("No two sum solution");
    }
    }

您需要创建一个数组对象,因此它是twoSum(new int[] {2,4,7},9);。当你返回时,你已经在函数中完成了它:return new int[] { i, j };你必须在main函数中做同样的事情。

答案 3 :(得分:0)

您的代码没有编译也没有运行,因为您有两个错误;

  

令牌“twoSum”上的语法错误,@在此令牌之前预期

表示此次调用

 twoSum({2,4,7}, 9);

在java中无效,需要传递一个新的匿名int数组:

twoSum(new int[]{2,4,7}, 9);

第二个错误是:

  

此方法必须返回int []

类型的结果

因为 twosum 方法仅在满足此条件时返回

if (nums[j] == target - nums[i]) {
    return new int[]{ i, j };
}

但你需要修改一下逻辑并保证方法ALLWAYS返回一个int []