【力扣】【好题】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站搜前缀和就是将这道题
相关推荐
我就是不信7 分钟前
C语言排序问题详解:从冒泡到快排的完整指南
c语言·算法·排序算法
l1t13 分钟前
DeepSeek总结的PIVCO-Huffman编码性能优化
数据结构·c++·算法
-dzk-23 分钟前
【贪心算法】LC 763.划分字母区间
算法·贪心算法
拾饵94230 分钟前
第六周第二节那个RAG工业项目遇到的问题
算法
强壮的CAT39 分钟前
VINS-Fusion 移植 ROS2 Jazzy 踩坑(一):环境与编译
人工智能·算法·机器人·自动驾驶
Omics Pro1 小时前
计算虚拟扰动:网络毒理+虚拟敲除
数据库·人工智能·算法·机器学习·自然语言处理
yyy(十一月限定版)1 小时前
CF2137D Replace with Occurrences
算法
谢亮_vipxieliang1 小时前
GC 入门:G1 与 ZGC 怎么选
java·jvm·算法
兔小盈1 小时前
有效三角形个数与和为s的两个数字
算法·双指针
海上小飞龙10 小时前
【KMP算法-下篇】同一道题:Java 库函数 2600 微秒,手写 KMP 16 微秒
java·开发语言·算法