当前位置: 首页 > 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

http://www.dtcms.com/a/71177.html

相关文章:

  • 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爬虫)
  • K8S下nodelocaldns crash问题导致域名请求响应缓慢
  • 基于Python+Flask+MySQL+HTML的爬取豆瓣电影top-250数据并进行可视化的数据可视化平台
  • 睡不着运动锻炼贴士
  • 工程化与框架系列(34)--前端重构技巧指南
  • Compose 实践与探索九 —— DrawModifier 解析
  • Next.js项目MindAI教程 - 第八章:数据统计与可视化
  • CVPR-2025 | 长程视觉语言导航平台与数据集:迈向复杂环境中的智能机器人
  • 论文阅读笔记:Deep Unsupervised Learning using Nonequilibrium Thermodynamics
  • Springboot+mabatis增删改查,设置不可重复字段
  • 基于python+django+vue.js开发的停车管理系统运行-期末作业