题解 | 删除相邻数字的最大分数

删除相邻数字的最大分数

https://www.nowcoder.com/practice/3bcf72c738b6494bbe1ebe0ffde56152

def max_score(n, nums):
    from collections import defaultdict

    # 统计每个数字出现的次数
    count = defaultdict(int)
    for num in nums:
        count[num] += 1

    # 找到数组中的最大值
    max_num = max(count.keys())

    # 初始化 dp 数组
    dp = [0] * (max_num + 1)
    dp[1] = 1 * count[1]

    # 动态规划计算最大分数
    for i in range(2, max_num + 1):
        dp[i] = max(dp[i - 1], dp[i - 2] + i * count[i])

    # 返回最大分数
    return dp[max_num]


# 输入处理
n = int(input())
nums = list(map(int, input().split()))

# 输出结果
print(max_score(n, nums))

全部评论

相关推荐

04-13 11:19
门头沟学院 HTML5
NullPointe...:27实习的都快结束了吧
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-30 21:35
爱蜜莉雅碳劝退测开:裁员裁大动脉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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