剑指 Offer II 010. 和为 k 的子数组

剑指 Offer II 010. 和为 k 的子数组

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

示例 1:

输入:nums = [1,1,1], k = 2
输出: 2
解释: 此题 [1,1] 与 [1,1] 为两种不同的情况

示例 2:

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

思路

  • 前缀和+双指针
  • 连续数组,可以考虑用前缀和去算
  • 得到前缀和数列后,记得前缀和前面加一个0元素,方便计算
  • 根据前缀和,用双指针算法,计算右指针减去左指针的值是否等于k,等于则数量加1,不等于则看是大于k还是小于k调节指针大小

代码


posted @ 2023-03-16 20:33  时光如你般美好  阅读(16)  评论(0编辑  收藏  举报