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

我需要返回跳过两个连续值的数组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或动态编程序解决此问题?

nwpu_guy 回答:最大和跳过两个连续的整数

这种方法是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
本文链接:https://www.f2er.com/2967873.html

大家都在问