有一个一维数组,其元素为{5,30,99,60,5,10}。 从这个数组中,有1个子序列是5、99和10,它们的总和为114。其他子序列的总和小于114。 两个元素在子序列中不应是连续的,即{5、30和60}不是有效的子序列(针对此问题)。它可以是{5,99,5}或{30,60,10}等。该数组不包含负数。 哪种方法是计算此最大和的正确方法?我正在尝试用C实现它。
答案 0 :(得分:0)
递归是您的朋友
总和是
的最大值 5 + maxSum of {99, 60, 5, 10}
或放弃5取而代之以30,
30 + maxSum of {60, 5, 10}
假设您没有负数,则应使用5
或30
,然后使用其余序列。丢弃它们都没有意义。