簡體   English   中英

錯誤數組整數元素之和java

[英]errors array integers sum of elements java

我在這里找不到錯誤告訴我什么:

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");
}
}

錯誤是:

Main.java:12: error: illegal start of expression
    twoSum({2,4,7},9);
           ^
Main.java:12: error: ';' expected
    twoSum({2,4,7},9);
            ^
Main.java:12: error: illegal start of expression

我認為聲明是好的,那么如何更改此函數才能起作用?

{2,4,7}僅可用於數組的聲明,例如:

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

通過這樣的陣列作為一個參數的方法,使用

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

通過數組而不是通過更改來寫非法的東西

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

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

干得好:

  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函數中執行相同的操作。

您的代碼沒有編譯或運行,因為您有兩個錯誤;

令牌“ 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 []

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM