给定一个整数数组,我必须找到具有最大总和的子数组,使得总和是奇数。
例如在数组“2,5,7”中答案是7,2。直到现在我遇到了Kadane's algorithm及其在http://pastebin.com/qwWzbxKw
的实施但是我如何扩展它以使得总和是奇数。
修改
数组的所有元素都是整数和正数
答案 0 :(得分:1)
看起来你不要求它是连续的(从你的例子)。这更简单,只需要考虑所有正面元素,如果总和是奇数 - 你就完成了。如果是偶数 - 删除最低正奇数元素,或添加最高奇数负元素(做得更好,它只取决于abs(highest_negative_odd)
和lowest_positive_odd
)。
伪代码:
修改强>
对于所有正数,它更容易 - 如果总和不是奇数 - 只需踢出最小的奇数。