蚂蚁3.28算法笔试第三题

题目描述:
数组染色
数组相邻的三个元素不能同时染色,也不能一个也不染色。
求染色元素的最大和

dp[i][0]  定义为位置i不染色,i - 1也不染色
dp[i][1]= 定义为位置i不染色,i - 1染色
dp[i][2] = 定义为位置i染色,i - 1不染色
dp[i][3] = 定义为位置i染色,i - 1也染色

def dp_color(nums):
    n = len(nums)
    dp = [[0, 0, 0, 0] for _ in range(n)]
    dp[0][2] = nums[0]
    dp[0][3] = nums[0]

    dp[1][1] = nums[0]
    dp[1][2] = nums[1]
    dp[1][3] = nums[0] + nums[1]

    for i in range(2, n):
        dp[i][0] = dp[i - 1][1]
        dp[i][1] = max(dp[i - 1][2], dp[i - 1][3])
        dp[i][2] = nums[i] + max(dp[i - 1][0], dp[i - 1][1])
        dp[i][3] = nums[i] + dp[i - 1][2]
    return max(dp[n - 1])
全部评论
点赞 回复 分享
发布于 2023-03-29 13:42 江苏
太强了
点赞 回复 分享
发布于 2023-03-28 21:22 广东
m
点赞 回复 分享
发布于 2023-03-28 21:14 北京
m
点赞 回复 分享
发布于 2023-03-28 21:13 广东

相关推荐

07-29 12:14
门头沟学院 Java
程序员小白条:oppo不用想了,经常看92都挂的
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
07-30 13:44
门头沟学院 Java
点赞 评论 收藏
分享
评论
2
14
分享

创作者周榜

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