leetcode中等523连续的子数组和

Posted qq_40707462

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode中等523连续的子数组和相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
思路:
如果两个数对k同余,那么他们的差可以整除k

用set(数组超时了)存储前缀和对k的余数,每遍历一个数,看看这个数对k的余数和set里是否有一样的

注意:①子数组大小至少为2,所以遍历到第i个数的时候,set里存的是i-2之前的余数,此时给set里加入i-1个余数
②0也算倍数

class Solution:
    def checkSubarraySum(self, nums: List[int], k: int) -> bool:
        #两个数同余,他们的差就是k的整倍数
        total=0
        hash=set()
        for num in nums:
            total+=num
            if (total%k) in hash:
                return True
            hash.add((total-num)%k)
        return False

以上是关于leetcode中等523连续的子数组和的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode523. 连续的子数组和

LeetCode523. 连续的子数组和

LeetCode题目分类整理

leetcode No.523 连续的子数组和 java

LeetCode每日一题——523. 连续的子数组和(同余定理)

LeetCode523. 连续的子数组和/394. 字符串解码/牛客:万万没想到之抓捕孔连顺