题解 | #不相邻取数#

不相邻取数

https://www.nowcoder.com/practice/a2be806a0e5747a088670f5dc62cfa1e

import sys

#for line in sys.stdin:
#    a = line.split()
#   print(int(a[0]) + int(a[1]))

N = int(input())
#注意这里要对输入的数据去掉空格,然后再转化为列表
list1 = list(input().split())
#print(list1)
func = lambda x:int(x)
list1=list(map(func,list1))
#print(N)


#初始化一个dp数组,该数组的长度为list1的长度,数组中元素的长度为2,
#数组用列表的形式初始化
dp =[[0,0] for i in range(len(list1))]
#print(dp)

#初始化dp,dp刚开始dp0可以选,可以不选,选中的话,dp的值为list1中0号元素的值,
#不选中的话,因为没有前面得元素可以选,是第一号元素,所以说为0
#选中dp0
dp[0][0]=list1[0]

#不选中dp0
dp[0][1]=0

#初始化maxsum的值

#maxsum=0

for i in range(1,len(list1)):
    dp[i][0] = dp[i-1][1]+list1[i]
    dp[i][1] = max(dp[i-1][0],dp[i-1][1])
print(max((dp[len(list1)-1][0],dp[len(list1)-1][1])))

全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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