拼多多笔试题第二题超时!

def solve(n,m,arr):
    result=0
    for i in range(n):
        num=i+1
        index=0
        while index<=n-num:
            he=sum(arr[index:index+num])
            if he%m==0:
                result+=1
            index=index+1
    return result

if __name__=='__main__':
    tmp=list(map(int,input().split(' ')))
    n=tmp[0]
    m=tmp[1]
    arr=list(map(int,input().split(' ')))
    result=solve(n,m,arr)
    print(result)
求问大佬们是怎么做的,我这样显示超时,只通过10%。#拼多多##笔试题目#
全部评论
https://leetcode-cn.com/problems/subarray-sums-divisible-by-k/solution/he-ke-bei-k-zheng-chu-de-zi-shu-zu-by-leetcode-sol/ leetcode原题,前缀和很好想,同余就比较难
3 回复 分享
发布于 2020-04-10 21:22
.................咋回事啊?
1 回复 分享
发布于 2020-04-10 21:39
思路一样 我也是超时,10%
点赞 回复 分享
发布于 2020-04-10 21:14
用前缀和过50% 超时
点赞 回复 分享
发布于 2020-04-10 21:17
你是报了超时吗,我只a了20%,不过没有报超时,不知道是哪种情况没考虑到,还是超时了
点赞 回复 分享
发布于 2020-04-10 21:18
用哈希做存余数 时间复杂度O(n)
点赞 回复 分享
发布于 2020-04-10 21:18
请问你是什么思路呀,看不大懂🤣
点赞 回复 分享
发布于 2020-04-10 21:21
前缀和+同余。 如果a%m=k,b%m=k,那么(a - b)%m=0。
点赞 回复 分享
发布于 2020-04-10 21:28

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务