1. 题目

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。

示例 1 :
输入:nums = [1,1,1], k = 2
输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。
说明 :
数组的长度为 [1, 20,000]。
数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/subarray-sum-equals-k
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

参考题目:LeetCode 1248. 统计「优美子数组」(要复习) 的思路
类似题目:
LeetCode 862. 和至少为 K 的最短子数组(前缀和+deque单调栈)
LeetCode 525. 连续数组(前缀和+哈希)
LeetCode 523. 连续的子数组和(求余 哈希)
LeetCode 974. 和可被 K 整除的子数组(哈希map)

class Solution {public:int subarraySum(vector<int>& nums, int k) {unordered_map<int, int> m;//和,数组个数int i, sum = 0, count = 0;m[0] = 1;//边界,和为0的子数组数量为1for(i = 0; i < nums.size(); ++i){sum += nums[i];//前缀和// m[sum]++;不能写在这count += m[sum-k];//前缀和和为sum-k的有多少个,其后面到i处,和为km[sum]++;//更新前缀和为sum的数组个数}return count;}
};

96 ms 21.2 MB

LeetCode 560. 和为K的子数组(前缀和差分)相关推荐

  1. LeetCode 2090. 半径为 k 的子数组平均值(滑窗)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k . 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 ...

  2. LeetCode 713. 乘积小于K的子数组(滑动窗口)

    1. 题目 给定一个正整数数组 nums. 找出该数组内乘积小于 k 的连续的子数组的个数. 示例 1: 输入: nums = [10,5,2,6], k = 100 输出: 8 解释: 8个乘积小于 ...

  3. 11. Leetcode 713. 乘积小于K的子数组 (数组-同向双指针-滑动窗口)

    给定一个正整数数组 nums和整数 k .请找出该数组内乘积小于 k 的连续的子数组的个数.示例 1:输入: nums = [10,5,2,6], k = 100 输出: 8 解释: 8个乘积小于10 ...

  4. LeetCode 930. 和相同的二元子数组(哈希+前缀和)

    文章目录 1. 题目 2. 解题 1. 题目 在由若干 0 和 1 组成的数组 A 中,有多少个和为 S 的非空子数组. 示例: 输入:A = [1,0,1,0,1], S = 2 输出:4 解释: ...

  5. [Leedcode][JAVA][第560题][和为K的子数组][Hashmap][数组]

    [问题描述][第560题][和为K的子数组][中等] 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数.示例 1 :输入:nums = [1,1,1], k = 2 输 ...

  6. 力扣 2090. 半径为 k 的子数组平均值

    题目 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k . 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 且 半径 为 k 的子数组中所有 ...

  7. 2022-6-13 咒语和药水的成功对数,替换字符后匹配,统计得分小于 K 的子数组数目,......

    1. 咒语和药水的成功对数 You are given two positive integer arrays spells and potions, of length n and m respec ...

  8. 5939. 半径为 k 的子数组平均值

    5939. 半径为 k 的子数组平均值 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k . 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 ...

  9. 【枚举 + 求最大公约数方法】最大公约数等于K的子数组数目问题

    慢一点是为了快一点,加油,大家 ,不要放弃 ! -- 2022/11/13 一.题目描述: 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 nums 的子数组中元素的最大公因数等于 k ...

最新文章

  1. Spring Security 实战干货:自定义异常处理
  2. 转帖 开源游戏服务器调研
  3. windows安装Python模块:requests
  4. Java未将对象引用设置到对象的实例
  5. return和break的区别
  6. Android之Launcher分析和修改1——Launcher默认界面配置(default_workspace)
  7. OpenCV3学习(3)——视频文件的读取与写入
  8. JavaScript 4行代码找出重复出现次数最多的元素及次数
  9. Android CoordinatorLayout
  10. 有趣的JavaScript数组
  11. java从文件读入个人信息_Nacos 作为配置中心 读取Properties配置信息
  12. php代挂程序什么原理,小新云全套代挂加速 来源于网络资源简介:01、本源码调用官方接口 联合开发网 - pudn.com...
  13. 让你嘿嘿嘿!最新windows7升级win10方法!
  14. 如何把PDF文件转换成其他格式或者转换成可编辑的PDF格式
  15. 可能是东半球最好看的vue3日历组件vue-baidu-calendar
  16. 用Python判断手机号码的运营商
  17. Windows 7 下载
  18. BULK INSERT如何将大量数据高效地导入SQL Server
  19. 问题: 一维Schrodinger方程的双线性Strichartz估计的最佳性
  20. 将秒转换为小时:分钟:秒

热门文章

  1. 配置hiveserver2访问hive
  2. Java开发必须熟悉的Linux命令总结
  3. java mapstring_ object 遍历_ListMapString,Object使用Java代码遍历以获取String,Object的值...
  4. 在成长中遇到的挫折事件对你的影响_多种语言环境中成长的宝宝,会影响说话早晚?其实没有想象的复杂...
  5. 利用云计算打造政务信息化及应急指挥云平台
  6. sort和qsort函数
  7. [leetcode 70]Climbing Stairs
  8. MediaPlayer 播放视频的方法
  9. thinkpad s3 安装win8 kali双系统笔记
  10. 邻接表的两种实现(链表和数组模拟)