leetcode-560. 和为 K 的子数组

server/2024/9/22 2:04:32/

题目描述

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 

子数组是数组中元素的连续非空序列。

示例 1:

输入:nums = [1,1,1], k = 2
输出:2

示例 2:

输入:nums = [1,2,3], k = 3
输出:2

思路

前缀和

参考:算法面试实录-和为 k 的子数组_哔哩哔哩_bilibili 这个视频讲的很清楚

1)变量pre用来记录前缀的累加和

2)字典记录:当前位置累加和出现的次数。PS:需初始化{0:1}

3)遍历数组,如果前缀和-k在字典中,count+=字典中的次数

class Solution(object):def subarraySum(self, nums, k):""":type nums: List[int]:type k: int:rtype: int"""count = 0pre = 0pre_dict = {0:1}for num in nums:pre += numif pre - k in pre_dict:count += pre_dict[pre-k]if pre in pre_dict:pre_dict[pre] += 1else:pre_dict[pre] = 1return countif __name__ == '__main__':s=Solution()nums = [1,2,3]k = 3print(s.subarraySum(nums, k))

http://www.ppmy.cn/server/120068.html

相关文章

音视频入门基础:AAC专题(4)——ADTS格式的AAC裸流实例分析

音视频入门基础:AAC专题系列文章: 音视频入门基础:AAC专题(1)——AAC官方文档下载 音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件 音视频入门基础:AAC…

ftp服务的管理及安全优化

1.ftp介绍 ftp : file transfer proto 互联中最老牌的文件传输协议 2.vsftpd安装及启用 环境 #server 主机 : # R3 # 192.168.10.130 # selinux 关闭 # 火墙开启 # dnf 安装设定完成 # #client 主机 : # R4 # 192.168.10.131 # selinux 关闭 …

前端如何快速调试线上问题

主角登场 抓包工具:whistle,charles 此次博主会从中选择一个来讲 配个官网whistle 功能 可以抓包(这不是我们这次讲的主题)代理 【主讲】 以下都会围绕代理这个主题来讲,抓包工具是怎么运用到我们日常开发工作当中&…

【RabbitMQ】消息分发、事务

消息分发 概念 RabbitMQ队列拥有多个消费者时,队列会把收到的消息分派给不同的消费者。每条消息只会发送给订阅该队列订阅列表里的一个消费者。这种方式非常适合扩展,如果现在负载加重,那么只需要创建更多的消费者来消费处理消息即可。 默…

CMake中的PUBLIC、PRIVATE 和 INTERFACE用法

在CMake中,PUBLIC、PRIVATE 和 INTERFACE 是用于指定目标属性(如编译选项、链接库、包含路径等)的访问范围的关键字。它们主要用于target_link_libraries、target_include_directories、target_compile_definitions等命令中,影响到…

[Python可视化]数据可视化在医疗领域应用:提高诊断准确性和治疗效果

随着医疗数据的增长,如何从庞大的数据集中快速提取出有用的信息,成为了医疗研究和实践中的一大挑战。数据可视化在这一过程中扮演了至关重要的角色,它能够通过图形的方式直观展现复杂的数据关系,从而帮助医生和研究人员做出更好的…

【Linux实践】实验二:LINUX操作基础

【Linux实践】实验二:LINUX操作基础 实验目的实验内容实验步骤及结果1. 打开终端2. 关闭计算机命令3. 查看帮助文档4. 修改计算机主机名5. 显示月历和时间6. 统计行数、字符数、单词数 这章开始要涉及到命令了,其他关于命令的内容可以看我 2021年写的笔记…

arcgisPro地理配准

1、添加图像 2、在【影像】选项卡中,点击【地理配准】 3、 点击添加控制点 4、选择影像左上角格点,然后右击填入目标点的投影坐标 5、依次输入四个格角点的坐标 6、点击【变换】按钮,选择【一阶多项式(仿射)】变换 7…