题目大意:给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目

大致思路:比如数组A = [1,2,1], K=2,那么1%2 =1,(1+2)%2=1,所以 {2}是符合条件的子数组,而{1}和{1,2}的特点是有共同的余数1。类似的{}和{1,2,1}有共同的余数0,所以{1,2,1}是满足条件的数组。

详细思路:

(1)统计0到A.size()累计和的余数;

(2)统计相同余数的数量;

(3)相同余数的数量累加;

补充,由于题目A为整数,那么要处理负数的情况,负数的余数是A[i]%K+K。

代码如下:

class Solution {
public:int subarraysDivByK(vector<int>& a, int k) {int as =a.size();vector<int> remain(as+1,0);int sum=0;for(int i=0;i<as;i++){sum+=a[i];//statistac for remainerremain[i]=(sum%k+k)%k;//+k for neg}vector<int> stat(k,0);int ret=0;for(int i=0;i<=as;i++){ret+=stat[remain[i]];//get same remainer countsstat[remain[i]]++;}return ret;}
};

leetcode 974. Subarray Sums Divisible by K的解法(统计共同余数)相关推荐

  1. leetcode 974 Subarray Sums Divisible by K

    leetcode 974 Subarray Sums Divisible by K 1.题目描述 2.解题思路 3.Python代码 1.题目描述 给定一个整数数组 A,返回其中元素之和可被 K 整除 ...

  2. leetcode 974. Subarray Sums Divisible by K

    974. Subarray Sums Divisible by K 题意:给你一个数组A和一个数K,求改数组有多少连续子序列的和能被K整除. 思路:简单DP.假设sum[i]表示[0-i]的求和,那么 ...

  3. LeetCode 974. Subarray Sums Divisible by K--Python解法--数学题--取模求余

    LeetCode 974. Subarray Sums Divisible by K–Python解法–数学题–取模求余 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结 ...

  4. 【leetcode】974. Subarray Sums Divisible by K

    题目如下: Given an array A of integers, return the number of (contiguous, non-empty) subarrays that have ...

  5. LeetCode:974. Subarray Sums Divisible by K - Python

    974. 和可被 K 整除的子数组 问题描述: 给定一个整数数组 A,返回其中元素之和可被K整除的(连续.非空)子数组的数目. 示例: 输入:A = [4,5,0,-2,-3,1], K = 5 输出 ...

  6. 974. Subarray Sums Divisible by K

    Title 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续.非空)子数组的数目. 示例: 输入:A = [4,5,0,-2,-3,1], K = 5 输出:7 解释: 有 7 个子数组满 ...

  7. 974. Subarray Sums Divisible by K [Medium]

    用了prefix sum的思想,之前没用过,感觉很难 /*** Runtime: 18 ms, faster than 56.05%* Memory Usage: 42.9 MB, less than ...

  8. Leetcode 1015. Smallest Integer Divisible by K

    思路显然是暴力枚举. 但是两个问题: 1.当1的位数非常大时,模运算很费时间,会超时. 其实每次不用完全用'11111...'来%K,上一次的余数*10+1后再%K就行. 证明: 令f(n)=1111 ...

  9. ⭐算法入门⭐《前缀和》中等02 —— LeetCode 974. 和可被 K 整除的子数组

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 1)初始化前缀和 2)哈希表统计 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题 ...

最新文章

  1. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
  2. F#探险之旅(三):命令式编程(上)
  3. rdp协议打开 windows_RDPY - Twisted Python 实现的RDP协议(Windows 远程桌面)
  4. Python之第一个helloworld的代码
  5. 计算机视觉研究群体及专家主页汇总
  6. linux kernel的virtual kernel memory layout介绍(aarch64)
  7. php 设置断点,PHP xdebug安装配置(支持断点调试)
  8. .net core 并发下的线程安全问题
  9. Harris角点检测+sift描述匹配
  10. NOIP2000提高组复赛C 单词接龙
  11. 前端学习(1658):前端系列实战课程之图片延迟加载思路
  12. idea 利用vue.js插件创建vue初始化项目
  13. 全面介绍Windows内存管理机制及C++内存分配实例(二):内存状态查询
  14. Struts2中带参数的结果集
  15. 使用mysqldump进行逻辑备份
  16. vue 如何清除浏览器的内存_浏览器垃圾回收机制与 Vue 项目内存泄漏场景分析
  17. MATLAB模糊控制器
  18. 如何巧妙将流量转化为销量?
  19. Android 根据逗号分隔String
  20. Generality

热门文章

  1. 数据结构与算法分析----八大排序(暂时缺少堆排序)
  2. echarts折线图实现滑动平移,横坐标过多时隐藏部分横坐标,通过滑动平移显示隐藏的部分
  3. 最新android系统下载,安卓6.0抢先体验方法|安卓6.0下载 安卓6.0系统下载地址_PC6教学...
  4. 夏敏捷的24部著作(2019年)
  5. 11月21至28号总结
  6. 【转载】C++ pair的基本用法总结(整理)
  7. POLARDB:向着更快、更高、更强不断前行!
  8. C++描述 LeetCode 485. 最大连续1的个数
  9. AWS CloudFormation
  10. 易鑫集团上半年经调整净利润1.23亿元 同比下降53%