type
status
date
slug
summary
tags
category
icon
password
创建时间
Apr 30, 2025 05:20 AM
给定一个整数数组
nums
和一个整数 k
,返回其中元素之和可被 k
整除的非空 子数组 的数目。子数组 是数组中 连续 的部分。
一、前缀和——1.1 前缀和基础
前缀和的知识就不赘述了。
连续子数组
sum(i, j) = S[j + 1] - S[i]
,判断子数组的和能否被 k
整除等价于判断 (S[j + 1] - S[i]) % k == 0
。利用同余定理,也就是
S[j + 1] % k == S[i] % k
使用哈希表来保存之前的前缀和,但是注意边界条件。前缀和为 0 的时候,没有任何元素的子数组也算数,需要将哈希表初始化
record[0] = 1
。📎 参考
- 无