您将获得一个包含整数的数组(长度至少为3,但可能会非常大)。除了单个整数N以外,该数组要么完全由奇数整数组成,要么完全由偶数整数组成。编写一个将数组作为参数并返回此“异常值” N的方法。

我的代码在下面,但是当我运行它时,它看起来不像是在注册even += integers[i]odd += integers[i],因此它总是吐出0。我在做什么错?

public class FindOutlier {

    static int find(int[] integers) {
        int countEvens = 0, countOdds = 0;
        int oddOutlier = 0, evenOutlier = 0;

        for (int i=0; i < integers.length - 1 ; i++) {
            if (Math.abs(integers[i]) % 2 == 0) {
                countEvens++;
                evenOutlier += integers[i];
            } else {
                countOdds++;
                oddOutlier += integers[i];
            }
        }

        if (countEvens == 1)
            return evenOutlier;
        else
            return oddOutlier;
    }
}

最佳答案

啊,我明白了。第一个测试用例将异常值作为数组中的最后一个元素,因此“ integers.length-1”使其吐出0,因为代码没有看到最后一个奇数。愚蠢的错误,我已经花了很长时间研究了,而且我确信这是正确的。

关于java - 如何获得奇偶校验异常值代码以正确运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61280950/

10-09 04:43