🗒️974. 和可被 K 整除的子数组
2025-4-30
| 2025-4-30
0  |  阅读时长 0 分钟
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

📎 参考

  • 【题单】常用数据结构(前缀和/差分/栈/队列/堆/字典树/并查集/树状数组/线段树)
  • 3152. 特殊数组 II1524. 和为奇数的子数组数目
    Loading...