【力扣】【好题】560.和为k的子数组 || 前缀和

添加链接描述

python 复制代码
class Solution:
    def subarraySum(self, nums: List[int], k: int) -> int:
        sum=0
        res=0
        dict={}
        dict[0]=1
        for num in nums:
            sum=sum+num
            if sum-k in dict:
                res+=dict[sum-k]
            if sum in dict:
                dict[sum]+=1
            else:
                dict[sum]=1
        return res

思路:

  1. 利用前缀和的思想
  2. sum用来计算从下标0的元素,到下标问为x的元素的和
  3. 使用字典,记录钱x项有多少个结果
  4. 所需要的组数就是目前的加和sum减去目标k后剩下的数出现的次数,这个数在字典里找
  5. B站搜前缀和就是将这道题
相关推荐
add45a2 分钟前
C++中的原型模式
开发语言·c++·算法
2401_844221323 分钟前
C++类型推导(auto/decltype)
开发语言·c++·算法
2201_753877793 分钟前
高性能计算中的C++优化
开发语言·c++·算法
hans汉斯4 分钟前
基于区块链和语义增强的科研诚信智能管控平台
人工智能·算法·yolo·数据挖掘·区块链·汉斯出版社
2501_945425154 分钟前
分布式系统容错设计
开发语言·c++·算法
冷小鱼6 分钟前
机器学习极简入门:从外卖预测到AI核心算法
人工智能·算法·机器学习
2401_8845632412 分钟前
C++代码重构实战
开发语言·c++·算法
小王不爱笑13213 分钟前
二叉排序树从入门到实践:攻克构建与遍历核心逻辑
开发语言·python·算法
2401_8319207426 分钟前
C++中的桥接模式
开发语言·c++·算法
m0_7434703728 分钟前
C++中的桥接模式变体
开发语言·c++·算法