【力扣】【好题】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站搜前缀和就是将这道题
相关推荐
夏乌_Wx6 分钟前
图 | 3道LeetCode常见笔试、面试题汇总
算法
ZPC821013 分钟前
PPO训练小车
人工智能·算法·机器人
阿Y加油吧15 分钟前
力扣打卡day05——找到字符串中所有字母异位词、和为K的子数组
leetcode
bksczm27 分钟前
二分查找的细则(binary search)
算法
A923A29 分钟前
【洛谷刷题 | 第三天】
算法·二分·洛谷·pair
abant237 分钟前
leetcode912 排序算法总结
算法·leetcode·排序算法
@猿程序42 分钟前
ShardingSphere自定义分片算法与Redis动态规则加载实战
网络·redis·算法
Share_Shun43 分钟前
【定位引导】多点对位算法
算法