千家信息网

LeetCode如何返回某整数数组元素之和可被K整除的子数组数目

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"LeetCode如何返回某整数数组元素之和可被K整除的子数组数目",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"LeetCode如
千家信息网最后更新 2026年11月03日LeetCode如何返回某整数数组元素之和可被K整除的子数组数目

这篇文章主要为大家展示了"LeetCode如何返回某整数数组元素之和可被K整除的子数组数目",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"LeetCode如何返回某整数数组元素之和可被K整除的子数组数目"这篇文章吧。


1

题目描述

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

A = [4,5,0,-2,-3,1], K = 5,返回7(因为有7个连续子数组的和可被5整除)。

2

题解

思路:哈希表
本题跟LeetCode刷题DAY 17:和为k的子数组较为类似,定义pre(i)为[0,i]内的所有元素和,则有pre(i)=pre(i-1)+A[i]关系,要找有多少个(pre(i)-pre(j-1))可被K整除。这里首先要介绍一下同余定理。
  • 同余定理:设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安全错误 数据库的锁怎样保障安全 互联网科技股 互联网的科技 猪兼强互联网科技 电子科技大学互联网 互联网科技ppt模板 佰商互联网科技有限公司 顺网科技2021年互联网排名 云创客互联网科技公司 互联网汽车科技小镇 互联网科技大奖都有哪些公司 互联网科技和信息 互联网金融科技元年 互联网第三次科技革命特征 云鲸互联网络科技有限公司 世界互联网科技成果奖 银川新华互联网科技学校原画 美国五大互联网科技公司市值多少 广西泛欧互联网科技有限公司 互联网的科技体现在哪里 互联网领先科技成果宣传视频 有格互联网科技 互联网 卓越科技 碳银互联网科技有限公司 互联网科技公司介绍 互联网科技公司有风险吗 速维有品互联网信息科技(苏州)有限公司 广西互联网科技孵化中心 四川慕妮娅互联网科技有限公司 沐思想互联网科技有限公司 科技互联网专业工作会议发言稿
0