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连续的子数组和的主要内容,如果未能解决你的问题,请参考以下文章