试题 算法提高 数组求和

思路:我这边是取巧了,是把输入n个整数的列表在加上一次该列表,最后求和取最大值即可。

资源限制
时间限制:1.0s   内存限制:256.0MB
问题描述
  输入n个数,围成一圈,求连续m(m<n)个数的和最大为多少?
输入格式
  输入的第一行包含两个整数n, m。第二行,共n个整数。
输出格式
  输出1行,包含一个整数,连续m个数之和的最大值。
样例输入
10 3
9 10 1 5 9 3 2 6 7 4
样例输出
23
数据规模和约定
  0<m<n<1000, -32768<=输入的每个数<=32767。

代码:

n,m = input().split()
n = int(n)
m = int(m)
list1 = list(map(int,input().split()))
i = 0
a = []
list1 = list1 + list1
while i < n:
    a.append(sum(list1[i:m+i]))
    i += 1
print(max(a))
发布了81 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Python_Matlab/article/details/105172013
今日推荐