小红书,算法笔试第二题代码

给一个数组 表示点赞的帖子, 要求求不相连的 点赞次数最大,输出 点赞总数 和  贴子数

if __name__ == "__main__":
    n = int(input())
    zan = [int(x) for x in input().strip().split(' ')]
    dp = [[0 for _ in range(2)] for _ in range(n)]
    dp[0][0] = 0
    dp[0][1] = zan[0]
    state_0 = []
    state_1 = [zan[0]]
    for i in range(1, n):
        if dp[i-1][1] > dp[i-1][0]:
            dp[i][0] = dp[i-1][1]
            tem = state_0
            state_0 = state_1
            dp[i][1] = dp[i-1][0] + zan[i]
            state_1 = tem
            state_1.append(zan[i])
        else:
            dp[i][0] = dp[i-1][0]
            dp[i][1] = dp[i-1][0]+zan[i]
            state_1 = state_0[:]
            state_1.append(zan[i])
    if dp[n-1][0] > dp[n-1][1]:
        tol = dp[n-1][0]
        res = len(state_0)
    else:
        tol = dp[n-1][1]
        res = len(state_1)
    # print(state_0)
    # print(state_1)
    print(tol, res)
全部评论

相关推荐

06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 17:00
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务