蚂蚁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 广东

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
2
14
分享

创作者周榜

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