leetcode974. 和可被 K 整除的子数组

news/2025/3/20 12:17:28/

思路

使用前缀数组可以快速统计加和问题。然后基于题目,考虑是寻找整除的子集,换个说法,当前前缀的余数要与之前的某个余数一样,两前缀之差为合格子集。
除此外,额外统计前缀中本身就余数为0的子集数量。

class Solution:def subarraysDivByK(self, nums: List[int], k: int) -> int:s = 0 mapper = {}for i in range(len(nums)):s += nums[i]res = s % k if res not in mapper:mapper[res] = 1else:mapper[res] += 1print(mapper)count = 0for k,v in mapper.items():if k == 0:count += vcount += v*(v-1)//2return count

http://www.ppmy.cn/news/1580588.html

相关文章

实验5:Vuex状态管理

Web前端开发技术课程实验报告 实验5:Vuex状态管理 一、实验目的: 掌握Vuex的工作原理和5个核心概念。掌握Vuex API接口的使用方法。 二、实验要求: 掌握mutations、actions、getters的定义和使用方法,完成以下实验内容。上交实…

win11环境下Anaconda3的安装

文章目录 下载地址安装检查是否安装成功 下载地址 清华大学开源软件镜像站 之前安装的那个的Anaconda3-5.3.1…在Win11环境下一直报错,这里下载使用的是:Anaconda3-2023.07-2-Windows-x86_64.exe 安装 双击上面的exe文件 检查是否安装成功…

Redis如何保持变量访问的安全?

在分布式系统中,Redis作为高性能内存数据库,其数据访问安全直接影响业务可靠性。变量(即Redis键值对)的访问安全需从认证授权、网络隔离、命令管控、数据加密多维度构建防御体系。以下是具体策略及测试验证方法: 1. 认…

【HarmonyOS Next之旅】DevEco Studio使用指南(五) -> 添加/删除Module

目录 1 -> 创建新的Module 2 -> 导入Module 3 -> 配置distroFilter/distributionFilter分发规则 4 -> 删除Module 1 -> 创建新的Module Module是应用/元服务的基本功能单元,包含了源代码、资源文件、第三方库及应用/元服务配置文件,…

【杂记二】git, github, vscode等

一、前言 暂时空着... 二、git 2.1 可能的疑问 1. VSCode 项目名和 GitHub 仓库名是否需要一致? 不需要一致。 VSCode 项目名(也就是你本地的文件夹名字)和 GitHub 仓库名可以不一样。 Git 是一个分布式版本控制系统,它主要关…

基于pycatia的CATIA装配体STP批量导出技术解析与优化指南

一、代码功能概述 本文提供的Python脚本通过pycatia库实现了CATIA装配体(.CATProduct)中第一层级零件/产品的STP格式批量导出功能。核心模块包含: ​CATIA连接初始化:通过COM接口建立与CATIA进程的通信(需后台运行CA…

【万字总结】前端全方位性能优化指南(四)——虚拟DOM批处理、文档碎片池、重排规避

前言 在浏览器宇宙中,DOM操作如同「时空裂缝」——一次不当的节点更新可能引发连锁重排,吞噬整条渲染流水线的性能。本章直面这一核心矛盾,以原子级操作合并、节点记忆重组、排版禁忌破解为三重武器,重构DOM更新的物理法则。通过虚拟DOM的批处理引擎将千次操作坍缩为单次提…

C++中的初识输入输出(二)

一、 iostream库与流的概念 C的iostream库是处理输入输出的核心工具,它定义了两个基础类型: istream:表示输入流,用于从设备读取数据。ostream:表示输出流,用于向设备写入数据。 所谓“流”(…