LeetCode热题100-和为 K 的子数组

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

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

题目要求连续非空序列,所以这里不能排序,可以使用前缀和 + 哈希表,从前缀和中查找cur_profix - k出现的次数直接相加,最终得到个数。

python 复制代码
from collections import defaultdict
class Solution:
    def subarraySum(self, nums: List[int], k: int) -> int:
        if not nums:
            return 0
        
        profix_dic = defaultdict(int)
        profix_dic[0] = 1
        cur_profix = 0
        res = 0

        for num in nums:
            cur_profix += num
            if cur_profix - k in profix_dic:
                res += profix_dic[cur_profix - k]
            profix_dic[cur_profix] += 1
        
        return res
相关推荐
算法鑫探17 小时前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
WBluuue18 小时前
数据结构与算法:康托展开、约瑟夫环、完美洗牌
c++·算法
木子墨51618 小时前
LeetCode 热题 100 精讲 | 并查集篇:最长连续序列 · 岛屿数量 · 省份数量 · 冗余连接 · 等式方程的可满足性
数据结构·c++·算法·leetcode
2501_9219608519 小时前
双相自指图与弦论边界非对易性的结构同源
数据结构
王老师青少年编程19 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:均分纸牌
c++·算法·编程·贪心·csp·信奥赛·均分纸牌
EQUINOX119 小时前
2026年码蹄杯 本科院校赛道&青少年挑战赛道提高组初赛(省赛)第一场,个人题解
算法
萝卜小白19 小时前
算法实习Day04-MinerU2.5-pro
人工智能·算法·机器学习
Liangwei Lin19 小时前
洛谷 P3133 [USACO16JAN] Radio Contact G
数据结构·算法
weixin_5134499619 小时前
PCA、SVD 、 ICP 、kd-tree算法的简单整理总结
c++·人工智能·学习·算法·机器人
code_pgf20 小时前
Qwen2.5-VL 算法解析
人工智能·深度学习·算法·transformer