zoukankan      html  css  js  c++  java
  • Leetcode 974 和可被K整除的子数组

    题目:

    解法

    //前缀和算法+hash表
    class Solution {
    public:
        int subarraysDivByK(vector<int>&amp; A, int K) {
            int res=0;
            int sum=0;
            unordered_map<int,int> hash = {{0,1}};//考虑自身被整除的情况,神操作,合并了自身被整除和不被整除两种情况
            for(int num:A){
                sum += num;
                int module = (sum % K + K) % K;//C++的模运算会出现负数,改成正数
                if(hash.count(module)){ //count会统计module出现的个数,但是map中不存在重复,因此即是判断是否存在这个值
                    res += hash[module];//存数量
                }
                hash[module] ++;//更新hash表
            }
            return res;
        }
    };
    
  • 相关阅读:
    PHP静态
    PHP批量删除
    PHP增删改查
    PHP数据访问
    PHP继承和多态
    PHP封装
    PHP字符串处理和正则表达式
    PHP数组
    PHP函数
    PHP基础
  • 原文地址:https://www.cnblogs.com/molinchn/p/13228028.html
Copyright © 2011-2022 走看看