n个整数中找出连续m个数加和是最大Python版

这是一个面试题,原题为Java版本,这里使用Python进行实现。问题要求找出n个整数中连续m个数的和最大值。算法思路是遍历整个序列,每次选取当前最大的m个数求和,最后返回最大和。
摘要由CSDN通过智能技术生成

最近在看资料时看到了一个如标题所示的面试题,面试题是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)

    # 解包的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值