leetcode-560. 和为 K 的子数组

题目描述

给你一个整数数组 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+=字典中的次数

python 复制代码
class Solution(object):
    def subarraySum(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: int
        """
        count = 0
        pre = 0
        pre_dict = {0:1}
        for num in nums:
            pre += num
            if pre - k in pre_dict:
                count += pre_dict[pre-k]
            if pre in pre_dict:
                pre_dict[pre] += 1
            else:
                pre_dict[pre] = 1
        return count

if __name__ == '__main__':
    s=Solution()
    nums = [1,2,3]
    k = 3
    print(s.subarraySum(nums, k))
相关推荐
z小猫不吃鱼9 分钟前
模型剪枝经典论文精读:Channel Pruning for Accelerating Very Deep Neural Networks
算法·机器学习·剪枝
njsgcs26 分钟前
已知链中心距用节数算中间电机摆放位置 常量弧长 三链轮弦长模型算法
算法
2601_962440841 小时前
计算机毕业设计之jsp旅游网站管理系统
java·开发语言·算法·课程设计·旅游·推荐算法
池塘的蜗牛2 小时前
AFDM波形基于DFT的通感一体化
算法
147API2 小时前
Claude global workspace 研究给智能体测试提了一个醒
人工智能·算法·机器学习
葫三生2 小时前
《论三生原理》与模糊数学的关联、异同、互补关系?
人工智能·科技·算法·机器学习·开源
我命由我123452 小时前
方差(实例实操、与标准差的区别)
java·数据结构·算法·数据分析·java-ee·intellij-idea·idea
闲研随记2 小时前
【文献阅读 ICML 2026】RL算法:Critique-GRPO
论文阅读·算法·llm·强化学习·rl·icml·grpo
民乐团扒谱机3 小时前
【微实验】从迷雾中看清世界:卡尔曼滤波的数学诗意与MATLAB实践
人工智能·算法·matlab·卡尔曼滤波·kalman
努力努力再努力wz3 小时前
【高性能网络库与HTTP Server系列】:基于主从 Reactor 模型实现高性能 C++ 网络库与 HTTP Server
开发语言·网络·数据结构·数据库·c++·网络协议·http