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

【前缀和】和为 K 的连续子数组

文章目录

  • 560. 和为 K 的连续子数组
    • 解题思路:前缀和 + 哈希表

在这里插入图片描述

560. 和为 K 的连续子数组

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

解题思路:前缀和 + 哈希表

​ 首先看到连续子数组,我们会想到用滑动窗口来解决这道题,但其实这道题用滑动窗口的话只能暴力破解,因为这道题 元素可能是负数或者为 0,那么此时如果使用滑动窗口的话,会遗漏中间的一些情况,这都是因为滑动窗口的指针不会回退的原因,但如果要回退的话,时间复杂度就比较高了,所以这道题 无法使用滑动窗口来解决

​ 所以我们要换个思路,因为这道题也涉及到数组的连续和,所以可以考虑使用前缀和来解决这道题!

​ 假设我们此时已经移动到了 i 位置处,那么我们要求就是从 [0, i] 区间达到目标值的子数组的个数。那么我们可以用一个数组 sum 来记录前缀和,即 sum[i] 表示从 [0, i] 区间上的元素和。

​ 此时我们会发现,有可能我们要求的这个子数组不是从下标为 0 处开始的,

相关文章:

  • 【iview】es6变量结构赋值(对象赋值)
  • list的迭代器详讲
  • 2025 年最新 Python 语言实现网易企业邮箱邮件推送验证码详细教程(更新中)
  • 【Redis】redis的数据类型、单线程模型和String的使用
  • 19. LangChain安全与伦理:如何避免模型“幻觉“与数据泄露?
  • 单细胞测序试验设计赏析(一)
  • C++ 友元:打破封装的钥匙
  • 希洛激活器策略思路
  • Java接口全面教程:从入门到精通
  • 智能决策支持系统的基本构建
  • 软件测试名词科普:驱动模块、桩模块
  • SQL经典实例
  • 剖析扩散模型(Denoising Diffusion Probabilistic Models)
  • Spring Cloud与Service Mesh集成:Istio服务网格实践
  • Qt/C++源码/实时视音频通话示例/极低延迟/可外网通话/画中画/支持嵌入式板子
  • Python面向对象编程实战:从类定义到高级特性的进阶之旅(2/10)
  • DeepSeek辅助学术写作之修订与校稿以及发表与推广相关提示词分享祝你顺利毕业~
  • Modbus 通讯协议(超详细,简单易懂)
  • java学习之数据结构:一、数组
  • 多协议 Tracker 系统架构与传感融合实战 第六章 多传感器时钟同步与数据对齐
  • 新四军老战士、苏州市文联原副主席张景坤逝世
  • 《歌手2025》能否“爆”下去?
  • 上海发文加强直播经济技能人才培养:三年新培养持证直播技能人才5万名
  • 大学2025丨苏大教授王尧:文科最大的危机是阐释世界的能力弱化
  • 西域都护府博物馆今日在新疆轮台县开馆
  • 西藏普兰县公安局网安大队向自媒体人宣传网络安全知识