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

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

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)
全部评论

相关推荐

08-04 22:37
桂林学院 Java
行不行阿细GO:说真的我现在看到校招java简历都头痛。。千篇一律和阅卷高考作文差不多,估计公司也是吧,到最后就看学历和大厂实习了
投递BOSS直聘等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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