描述
有n个硬币排成一排,每个硬币上用一个数字标识了它的价值。每次要你从最左边或者最右边拿出一个硬币。总共拿k次,写一个算法,使能拿到的硬币的价值和最大。
输入
输入包含两行,第一行为n, k;
第二行包含n个数字,表示n个硬币的价值。
1 <= k <= n <= 100
单个硬币的价值大于0且不超过100.
输出
输出可以拿到的k个硬币最大的价值和。
样例输入
6 3 5 4 3 2 1 6
样例输出
15
n, k = list(map(int, input().split()))
line = list(map(int, input().split()))
ps_li = list()
ans_li = list()
for i in range(n+1):
ps_li.append(sum(line[:i]))
for i in range(k+1):
ans_li.append(ps_li[i]+ps_li[n]-ps_li[n-k+i])
print(max(ans_li))
采用了谁能拿到最多的硬币_飓风之心-CSDN博客提供的优化思路