[英]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.