当前位置: 首页 > news >正文

560.和为k的子数组

题目:

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

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

示例 1:

输入:nums = [1,1,1], k = 2
输出:2

示例 2:

输入:nums = [1,2,3], k = 3
输出:2

提示:

  • 1 <= nums.length <= 2 * 104
  • -1000 <= nums[i] <= 1000
  • -107 <= k <= 107

解题思路:

用哈希表存储前缀和,cunrrent_sum = current_sum + num,判断target = current_sum-k是否存在与之前的前缀和中举个例子,pre[1] = -7, pre[5]=-7,代表当前的子数中有两种方式来得到-7,一种是[0, 1]另一种是[0, 1, 2, 3, 4, 5],当target = -7时代表当前的num需要+7才能得到k这就有两种方式,一种是0, 1....i而另一种就是0, 1...5...i,换句话说0-i和2-i得到的结果是相同的

代码:

class Solution:
    def subarraySum(self, nums, k: int) -> int:
        hash_map = {0:1}
        sum = 0
        count = 0
        for num in nums:
            sum +=num
            target = sum-k
            if target in hash_map:
                count += hash_map[target]
            hash_map[sum] = hash_map.get(sum, 0) +1
        return count

相关文章:

  • mysql索引讲解
  • 深入理解 Reactor Netty 线程配置及启动命令设置
  • 洛谷 P1068 [NOIP 2009 普及组] 分数线划定 python
  • rust学习笔记14-函数
  • SSO单点登录
  • FLASK和GPU依赖安装
  • Ollama+OpenManus详细部署实战
  • 【SegRNN 源码理解】验证集和测试集
  • C语言【内存函数】详解加模拟实现
  • 大模型最新面试题系列:微调篇之微调框架(一)
  • 78. Harmonyos NEXT 懒加载数据源实现解析:BasicDataSource与CommonLazyDataSourceModel详解
  • 背诵--2
  • 【商城实战(33)】解锁版本迭代与更新策略
  • 敏捷开发在中小团队中的应用与挑战:实战指南与避坑手册
  • 对Spring的每种事务传播级别的应用场景和失效场景
  • 20250315在windows10下开热点步骤
  • linux系统CentOS 7版本搭建NFS共享存储
  • 为什么HashMap 头插法会造成死锁
  • JDBC 核心 API 全面解析与高效数据库操作
  • 如何用正则表达式爬取古诗文网中的数据(python爬虫)
  • 国家统计局公布2024年城镇单位就业人员年平均工资情况
  • 光明日报:家长孩子共同“息屏”,也要保证高质量陪伴
  • 前四个月社会融资规模增量累计为16.34万亿元,比上年同期多3.61万亿元
  • 2025财政观察|长三角“三公”经费普降,钱要用在刀刃上
  • 沙青青评《通勤梦魇》︱“人机组合”的通勤之路
  • AI含量非常高,2025上海教育博览会将于本周五开幕