题解 | #平均数为k的最长连续子数组#

平均数为k的最长连续子数组

https://www.nowcoder.com/practice/2e47f99735584ac5ba30d75ac14d6524

from itertools import accumulate
n,k=map(int,input().split())
number=list(map(int,input().split()))
for i in range(n):
    number[i]-=k
number1=list(accumulate(number,initial=0))
dict1={}
count=-1
for index,value in enumerate(number1):
    if value not in dict1:
        dict1[value]=index
    else:
        count=max(count,index-dict1[value])
print(count)

先利用accumulate算出前缀和(自己算也行),然后用enumerate函数来枚举数和数的位置,逐步更新区间最大值

全部评论

相关推荐

02-08 15:53
门头沟学院 Java
CoderEcho:让公司知道便宜没好货
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务