文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
1. Description
2. Solution
解析:Version 1,使用前缀和来解决,遍历数组,求前缀和,求前缀和与k
的余数,余数在字典中存在时,则意味着当前前缀和减去之前的前缀和等于k
的倍数,此时计算两个前缀和的长度差,如果大于等于2
,则返回True
,如果余数不存在,则将余数保存在字典中并记录其索引位置。由于余数相同时不会更新索引,因此,字典中前缀和余数相同时,保存的是最靠前的位置。注意,假设第一个数就等于k
的倍数,此时数组中没有余数0
的位置,因此stat[0]=-1
,这样计算的长度才不会错。
- Version 1
1 | class Solution: |