LeetCode如何返回某整数数组元素之和可被K整除的子数组数目
发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,这篇文章主要为大家展示了"LeetCode如何返回某整数数组元素之和可被K整除的子数组数目",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"LeetCode如
千家信息网最后更新 2025年02月12日LeetCode如何返回某整数数组元素之和可被K整除的子数组数目思路:哈希表 本题跟LeetCode刷题DAY 17:和为k的子数组较为类似,定义pre(i)为[0,i]内的所有元素和,则有pre(i)=pre(i-1)+A[i]关系,要找有多少个(pre(i)-pre(j-1))可被K整除。这里首先要介绍一下同余定理。
这篇文章主要为大家展示了"LeetCode如何返回某整数数组元素之和可被K整除的子数组数目",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"LeetCode如何返回某整数数组元素之和可被K整除的子数组数目"这篇文章吧。
1
题目描述
给定一个整数数组A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。如输入
A = [4,5,0,-2,-3,1], K = 5,返回7(因为有7个连续子数组的和可被5整除)。
2
题解
同余定理:设m是大于1的正整数,a、b是整数,如果m|(a-b),则称a与b关于模m同余,记作a≡b(mod m)。
在本题中,即有(pre(i)-pre(j-1))|K等同于pre(i)≡pre(j-1)(mod K),因此我们在本题中可以建立哈希表,已余数为键,已该余数出现次数为值,计算哈希表中与pre(i)|K取值一样的键对应值的和即可。
class Solution: def subarraysDivByK(self, A: List[int], K: int) -> int: h_map = {0:1} a = 0 ans = 0 for i in range(len(A)): a += A[i] if a%K in h_map: ans += h_map[a%K] h_map[a%K]+=1 else: h_map[a%K]=1 return ans
以上是"LeetCode如何返回某整数数组元素之和可被K整除的子数组数目"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
数组
整数
元素
之和
数目
内容
本题
篇文章
哈希
余数
定理
学习
帮助
思路
易懂
更多
条理
次数
知识
编带
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
我的世界最困难的服务器生存视频
组态王与什么数据库
传递到数据库的汉字乱码
北京综合软件开发报价表
智能汽车网络安全体系
石家庄学软件开发的学校
帝国数据库表示什么
逆水寒端游怎么选服务器
数据库的安全验证通过
现代战舰服务器遭黑客攻击了吗
连云港网络服务器错误
金蝶SQL2008数据库密码
数据库按时间升序
深信服网络安全怎么配置
网络安全科技小报
梦幻有专门pk的服务器吗
去北京学软件开发好吗
软件开发需要什么工资
软件开发各阶段的基线
计算机网络安全的方法
安司密信电脑版怎么选择服务器
数据库服务器不认IP地址
深圳优客网络技术有限公司
百度云服务器怎么添加安全组
全国地籍数据库
axure9团队协作管理服务器
服务器怎么固定ip
战地5社区服务器需要一直在吗
医疗软件开发服务商
河南高科技软件开发行业标准