美团第一题 有python AC的嘛···

def aa(len_n,list_str,k):
     #倒序节约时间
    for L in range(len_n,0,-1):
        for x in range(len_n+1-L):
            if sum(list_str[x:L])%k==0:
               res=L
               return res
len_n=int(input())
list_str=[int(x)for x in input().split()]
k=int(input())
res=0
 print(aa(len_n,list_str,k))

全部评论
def longestA(arr, K, N): start, end = [-1] * K, [-1] * K start[0] = end[0] = s = e = n = m = 0 for i in range(N): m = (m + arr[i]) % K end[m] = i+1 if start[m] < 0: start[m] = i+1 if end[m] - start[m] > e - s: s, e, n = start[m], end[m], m return e-s N = int(raw_input()) arr = map(int, raw_input().split()) K = int(raw_input()) print longestA(arr, K, N)
点赞 回复 分享
发布于 2017-09-02 11:40
你的这个第二个循环从开始不是很好吗  这样节省了很多的时间   比如有list=[1,2,3,4,5] k=5 求出sum=[0,1,3,6,10,15] for i in range(len(list),-1,-1):      for j in range(i):         if (sum[i]-sum[j])%5==0:                 #直接求出长度为 i-j                 # 中断
点赞 回复 分享
发布于 2017-09-01 15:17
Go同样的思路(大的序列开始找&每次求序列的和不做优化)跑出来的结果是 AC,偶尔会出92%。总体还是暴力解法。 Java没跑,不知道结果怎么样。 求子序列和的方法改进一下Go就可以全AC了。
点赞 回复 分享
发布于 2017-08-31 22:10
你倒是用滑动窗口优化一下啊
点赞 回复 分享
发布于 2017-08-31 22:07
这是我的 超时了··· 67%
点赞 回复 分享
发布于 2017-08-31 22:07

相关推荐

06-13 12:13
已编辑
东北大学 射频工程师
26毕业的,日常实习还能找到吗
求实习的青提很想去大厂:目前应该还有hc吧,腾讯感觉还有hc,最近捞了我好几次,因为目前有offer,所以不准备面了,可以再找找,不行的话就找找中小厂试试,因为我之前也找了好久,准备放弃了,结果有个岗位流程特别顺利,然后就oc,只能说坚持下试试,万一呢💪
点赞 评论 收藏
分享
06-04 20:17
门头沟学院 Java
牛客713608542号:有的,我今天刚面了一个小厂,他们说刚好有缺人,就放出来了,成都的旅鸽,hxd不如去试试,但是是线下哇,不知道他们支不支持线上,如果有面记得多复习一下sql,我死在这一块上了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务