Dynamic Programming: Max Array Sum

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the maxSubsetSum function below.
def maxSubsetSum(arr):
    n=len(arr)
    v = [0] * n

    for i in range(n):
        if i < 2:
            v[i] = max(arr[i], 0)
        if i == 2:
            v[i] = v[i - 2] + max(arr[i], 0)

        v[i] = max(v[i-2], v[i-3]) + max(arr[i], 0)

    return max(v[-1], v[-2])  




if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(input())

    arr = list(map(int, input().rstrip().split()))

    res = maxSubsetSum(arr)

    fptr.write(str(res) + '\n')

    fptr.close()
发布了163 篇原创文章 · 获赞 90 · 访问量 6269

猜你喜欢

转载自blog.csdn.net/weixin_45405128/article/details/104305385