您将获得一个包含整数的数组(长度至少为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/