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

删除相邻数字的最大分数

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))

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:27
明天又是董事长面,啥时候是个头啊
在太阳里长大的人:公司就仨人吧😂
点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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