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