gpt4 book ai didi

java - 如何仅使用一次数字从数组中找到最大偶数和?

转载 作者:行者123 更新时间:2023-11-30 08:33:18 25 4
gpt4 key购买 nike

我遇到了一个小问题,即从 java 中的数组中查找最大偶数和。例如:在数组 {1,2,3,4,5,6} 中最大偶数和应为 6(1+2+3)、10(1+2+3+4) 和 16 中的 16(1+2+3+4+6)。

但是到目前为止,我得到 10 作为输出,因为它将 sum 作为连续的总和。请帮我解决一下。

最佳答案

请注意,您将使用数组中所有元素的总和执行以下两件事之一。如果总和是偶数,则返回该数字,但如果是奇数,则必须删除一个数字才能使其成为偶数。请注意,删除偶数将使剩余的总和为奇数,因此删除偶数是没有意义的。但是,由于总和是奇数,因此数组中必须至少有一个奇数。

因此,如果总和为奇数,您所需要做的就是迭代数组并删除最小奇数。并且保证至少有一个奇数。

这是一个实现:

public int findMaxEvenSum(int[] array) {
int total = 0;

for (int i=0; i < array.length; ++i) {
total += array[i];
}

if (total % 2 == 0) {
return total;
}

// otherwise iterate over the array and remove the smallest odd
// number from the sum
int lastOdd = 0;

for (int i=0; i < array.length; ++i) {
if (array[i] % 2 == 1 && (lastOdd == 0 || array[i] < lastOdd)) {
total += lastOdd;
total -= array[i];
lastOdd = array[i];
}
}

return total;
}

关于java - 如何仅使用一次数字从数组中找到最大偶数和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39556235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com