和可被 K 整除的子数组

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

  • 示例:
输入:A = [4,5,0,-2,-3,1], K = 5
输出:7
解释:
有 7 个子数组满足其元素之和可被 K = 5 整除:
[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]
  • 提示:
1 <= A.length <= 30000
-10000 <= A[i] <= 10000
2 <= K <= 10000

前缀和逐步推出使用同余定理解决这个问题。

class Solution {
public:int subarraysDivByK(vector<int>& A, int K) {unordered_map<int, int> record ={{0, 1}};int sum = 0, ans = 0;for (int elem: A) {sum += elem;// 注意 C++ 取模的特殊性,当被除数为负数时取模结果为负数,需要纠正int modulus = (sum % K + K) % K;if (record.count(modulus)) {ans += record[modulus];}++record[modulus];}return ans;}
};

来源:力扣(LeetCode)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端进阶路线图

CSS不能编程&#xff1f;用Less、Sass、Stylus、甚至直接用 Absurd&#xff0c;框架除了Bootstrap还有很多。JS写多了很麻烦&#xff1f;jQuery。移动开发&#xff1f;Zepto.js。结构不好&#xff1f;找框架&#xff0c;Backbone.js是MVC&#xff0c;AngularJS和Ember.js是MVVM…

流媒体直播服务LSS

流媒体直播服务LSS posted on 2014-10-22 11:23 实验室 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/labs/p/4042641.html

Win7安装vs2010失败

提示&#xff1a; --------------------------------------------------------------------------------------------------------------------------------------- 解决方法&#xff1a;开始运行中regedit打开注册表找到HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control …

调光设备术语:调光曲线(转)

源&#xff1a;调光设备术语&#xff1a;调光曲线 核心提示&#xff1a;调光曲线是调光设备重要的参数之一&#xff0c;它直接影响到了灯光输出的效果&#xff0c;是数字化调光设备性能的体现。上面这句话包含了三点内容&#xff0c;我们逐条解析。 调光曲线是调光设备重要的参…

深入浅出理解QTimeLine类

网上找了下QTimeLIne类的介绍&#xff0c;要么就是代码一贴自己看去&#xff0c;要么就是说不到重点&#xff0c;正巧自己项目遇到这个类&#xff0c;在这里写一下&#xff0c;给需要的同学看下。 因为我最近需要有动画方面配合时间间隔触发QGraphicsView框架的需求&#xff0c…

0909编译原理

1.编译原理学什么&#xff1f; 编译原理是计算机专业的一门重要专业课&#xff0c;旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 2.为什么学编译原理&#xff1f; 这门…

何为动态绑定(转)

动态绑定只是叫法不同&#xff0c;你可以理解为多态&#xff01;例如&#xff0c;有一个抽像fruit水果父类&#xff0c;其中定义了一个方法抽像eat方法&#xff0c;而apple继承fruit并实现fruit的eat方法&#xff0c;而banana继承fruit并实现fruit的eat方法&#xff0c;外部调用…

继承与多态

第十七讲 A&#xff09;构造方法的重载&#xff1a;只需看参数即可。如果想在一个构造方法中调用另外一个构造方法&#xff0c;那么可以用this()的方式调用&#xff0c;this()括号中的参数表示目标构造方法的参数。this()必须要作为构造方法的第一条语句。 B&#xff09;继承&a…

c++学习心得

c是大一开始接触的一门新的语言&#xff0c;说老实话当时学的并不好兴趣指数5颗星中只有3颗。但是既然是学这方面的&#xff0c;还是好好听课学习吧。下面简单的说一下c的一些学习心得吧&#xff01; c是什么&#xff1f;c是一种面向对象的程序设计语言。c是c的一种提高&#x…

实现strstr()

实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串&#xff0c;在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在&#xff0c;则返回 -1。 示例 1: 输入: haystack "hello", needle "ll" 输出: 2示例…

有效电话号码

给定一个包含电话号码列表&#xff08;一行一个电话号码&#xff09;的文本文件 file.txt&#xff0c;写一个 bash 脚本输出所有有效的电话号码。 你可以假设一个有效的电话号码必须满足以下两种格式&#xff1a; (xxx) xxx-xxxx 或 xxx-xxx-xxxx。&#xff08;x 表示一个数字…

JSP中RequestDispatcher的用法

RequestDispatcher是一个Web资源的包装器&#xff0c;可以用来把当前request传递到该资源&#xff0c;或者把新的资源包括到当前响应中。RequestDispatcher接口中定义了两个方法&#xff1a;include/forward 由于<jsp:include>只能指定固定的jsp文件名&#xff0c;不能动…

TCP/IP三次握手与四次握手

原文地址 http://blog.csdn.net/whuslei/article/details/6667471 http://blog.csdn.net/wo2niliye/article/details/48447933 建立TCP需要三次握手才能建立&#xff0c;而断开连接则需要四次握手。整个过程如下图所示&#xff1a; 先来看看如何建立连接的。 首先Client端发送连…

vim支持nginx语法高亮

下载nginx源码&#xff0c;解压之后&#xff0c;将contribu/vim/*拷贝到~/.vim/目录&#xff0c;如果没有~/.vim/目录&#xff0c;则创建即可。 cp -r contrib/vim/* ~/.vim/或 mkdir -p ~/.vim/ cp -r contrib/vim/* ~/.vim/此时再打开conf/nginx.conf就可以看到已经语法高亮…

Delphi 正则表达式语法(4): 常用转义字符与 .

Delphi 正则表达式语法(4): 常用转义字符与 . // \d 匹配所有数字, 相当于 [0-9] varreg: TPerlRegEx; beginreg : TPerlRegEx.Create(nil);reg.Subject : 期待Delphi 2008 for Win32&#xff01;;reg.RegEx : \d;reg.Replacement : ◆;reg.ReplaceAll;ShowMessage(reg.Subje…

C语言操作mysql

php中 mysqli, pdo 可以用 mysqlnd 或 libmysqlclient 实现 前者 从 php 5.3.0起已内置到php中, 并且支持更多的特性&#xff0c;推荐用 mysqlnd mysqlnd &#xff0c; libmysqlclient 对比&#xff1a;http://php.net/manual/en/mysqlinfo.library.choosing.php mysqlnd 目前是…

Hadoop DistributedCache分布式缓存的使用

转载请注明&#xff1a;http://www.cnblogs.com/demievil/p/4059141.html 我的github博客&#xff1a;http://demievil.github.io/ 做项目的时候遇到一个问题&#xff0c;在Mapper和Reducer方法中处理目标数据时&#xff0c;先要去检索和匹配一个已存在的标签库&#xff0c;再对…

每日温度

根据每日 气温 列表&#xff0c;请重新生成一个列表&#xff0c;对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高&#xff0c;请在该位置用 0 来代替。 例如&#xff0c;给定一个列表 temperatures [73, 74, 75, 71, 69, 72, 76, 73]&#xf…

什么是Modbus

什么是Modbus 1. Modbus如何工作 Modbus是通过设备之间的几根连线来传递数据&#xff0c;最简单的设置就是主站和从站之间用一跟串口线相连。数据通过一串0或者1来传递&#xff0c;也就是位。0为正电压&#xff0c;1为负电压。位数据传递速度非常快&#xff0c;常见的传输速度为…

博客刚刚开通!

今天老贼开播了&#xff01;以后请大家多多关照&#xff01; 转载于:https://www.cnblogs.com/xiaosayi/p/4065313.html