最大和跳过两个连续的整数

时间:2019-12-05 18:06:41

标签: python algorithm sum dynamic-programming divide-and-conquer

我需要返回跳过两个连续值的数组N的最大和。 例如, N = [10,30,50,60,5,60]。 输出:175,跳过两个第一个值[10,30] = 40。

我这样写:

def maxSum(array):
  tempSum = sum(array)
  totalSum=0
  for i in range(len(array)):
    prevSum = tempSum - sum(array[i:i+2])
    if prevSum > totalSum:
      totalSum = prevSum

是否可以通过Greedy,DAC或动态编程序解决此问题?

1 个答案:

答案 0 :(得分:0)

这种方法是O(n)贪婪

N = [10, 30, 50, 60, 5, 60]

total = sum(N)
result = max(total - sum(pair) for pair in  zip(N, N[1:]))

print(result)

输出

175