给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。
示例 1 :
输入:nums = [1,1,1], k = 2
输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。
说明 :
- 数组的长度为 [1, 20,000]。
- 数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。
来自up主视频:https://www.bilibili.com/video/av26815366
在Visual studio运行没有错误,但是提交的时候提示是堆缓冲区溢出
思想:定义两个数组sum和length,分别保存连续子数组的和、滑动窗口的长度
startIndex记录窗口的起始位置
int subarraySum(int* nums, int numsSize, int k) {
int *sum=(int *)malloc(sizeof(int)*numsSize);
int *length=(int *)malloc(sizeof(int)*numsSize);
int startIndex=0,temp=0,count=0;
int i;
for(i=0;i<numsSize;i++)