K 数的最大偶数和

Liu*_*tao -3 algorithm dynamic-programming

我遇到过这样的算法问题

给定一个包含 N 个元素的数组,我想找到数组中 k 个元素的最大偶数和

例如:

A = [4,2,6,7,8], K = 3, 算法应该返回 18 为 4 + 6 + 8 = 18

A = [5, 5, 2, 4, 3], K = 3, 算法应该返回 14 为 5 + 5 + 4 = 14

非常感谢您的帮助。

tob*_*s_k 5

以下应该工作:

  • 对数字进行排序并k从排序列表中选择最大的数字
  • 如果它们的总和是奇数,则必须用奇数替换一个偶数,反之亦然
    • 从选择中找到最小的偶数/奇数,并从剩余的数字(如果有)中找到最大的奇数/偶数
    • 看看这两个可能的替代中哪一个产生更大的总和