题解 | #不相邻取数#
不相邻取数
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])))



