最近在看资料时看到了一个如标题所示的面试题,面试题是Java版,正好最近在学Python,就先用Python实现了。毕竟life is short,use python(玩笑话,算法设计思路是共同的,每种语言的实现方式都大同小异)。
分析: m个连续的整数加和是最大,那么最简单的实现方式就是:从下标为0查找m个元素,依次n个数组成的容器进行遍历,每次遍历判断当前最大的m个数之和,遍历结束后返回。
#原始数据
a = (133,445,6768,23,656,12305,768,234,787,6321,5677,234,1445,3551,547,3245,12357)
def maxseq(seq,m):
# 断言:确保形参类型准确,其中序列形式可以是列表、元组、集合形式
assert isinstance(seq,(list,tuple,set)) and isinstance(m,int),"seq must list,tuple,set and m must int"
assert len(seq) > m, "len(seq) must >m"
# 将序列转化为列表
seq = list(seq)
# 解包的