3 回答

TA貢獻2條經驗 獲得超1個贊
我認為你想要做的是檢查所有偶數索引,看看是否有你可以這樣做:
public static boolean solution(int[] nums) {
? ?for(int i = 0; i < nums.length; i++) {
? ? ?if(i % 2 == 0 && nums[i] % 2 != 0) {
? ? ? ? ?System.out.print(nums[i] + " ");
? ? ? ? ?return false;
? ? ?}
? ?}
? ?return true;
}

TA貢獻1995條經驗 獲得超2個贊
您的代碼中有一個(邏輯)錯誤,還有一個可以改進的部分:
public static boolean solution(int[] nums) {
for(int i = 0; i < nums.length; i++) {
if(i % 2 == 0 && nums[i] % 2 == 0) {
System.out.print(nums[i] + " ");
return true;
}
}
return false;
}
在您當前的代碼中,在第一個有效測試時返回 true,這意味著您不測試以下情況。更改您的代碼,以便您對它們進行全部測試,并且僅在遇到無效值時才在流程中返回。
public static boolean solution(int[] nums) {
for(int i = 0; i < nums.length; i++) {
if(i % 2 == 0 && nums[i] % 2 != 0) {
System.out.print(nums[i] + " ");
return false;
}
}
return true;
}
您可以改進的第二件事是不檢查每次迭代的偶數索引。只需將您的 i 值增加兩個而不是一個:
public static boolean solution(int[] nums) {
for(int i = 0; i < nums.length; i+=2) {
if( nums[i] % 2 != 0) {
System.out.print(nums[i] + " ");
return false;
}
}
return true;
}

TA貢獻1936條經驗 獲得超7個贊
我認為你想要做的是檢查所有偶數索引,看看是否有你可以這樣做:
public static boolean solution(int[] nums) {
for(int i = 0; i < nums.length; i++) {
if(i % 2 == 0 && nums[i] % 2 != 0) {
System.out.print(nums[i] + " ");
return false;
}
}
return true;
}
添加回答
舉報