如何检查其他所有元素是否均等

时间:2018-09-17 12:57:16

标签: java algorithm

我的代码仅适用于第一个索引,该索引仅返回8 true

例如,如果我将第一个索引(nums[0])更改为9,它将跳过3并打印4 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 true;
        }
    }
    return false;
}

public static void main(String args[]) {
    int[] nums = {8,3,4,1,6,5,12,1};
    System.out.println(solution(nums));
}

2 个答案:

答案 0 :(得分:4)

您的代码中有一个(逻辑)错误,有一部分可以改进:

$url = 'http://site.zz/file.jpg';
file_exists($url); //always is false
filesize($url); //not working

在当前代码中,第一个有效测试将返回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 true;
        }
    }
    return false;
}

您可以改进的第二件事是,无需在每次迭代中检查偶数索引。只需将i值增加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;
}

答案 1 :(得分:0)

我认为您想做的是检查所有偶数索引,看看是否有偶数可以这样做:

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