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条经验 获得超6个赞
我认为你想要做的是检查所有偶数索引,看看是否有你可以这样做:
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;
}
添加回答
举报