0
点赞
收藏
分享

微信扫一扫

LeetCode 974. 和可被 K 整除的子数组***

三千筱夜 2022-04-29 阅读 40
leetcode

具体思想:

前缀和+记忆化,自己又忘了。。。

问题在于同余上;

4-(-1)=3;

则要求4和-1同余相同;

但是cpp负数去模需要转换;

具体代码:

class Solution {
public:
    int subarraysDivByK(vector<int>& nums, int k) {
        unordered_map<int,int>mp;
        mp.insert({0,1});
        int sum=0;
        int ret=0;
        for(int i=0;i<nums.size();i++){
            sum+=nums[i];
            int mod=(sum%k+k)%k;
            if(mp.count(mod)){
                ret+=mp[mod];
            }
            mp[mod]++;
        }
        return ret;
    }
};
举报

相关推荐

0 条评论