#include <bits/stdc++.h>
#pragma GCC optimize ("2")
using namespace std;
int ans=-1, a[1000004], s, cnt=0;
int main()
{
int n, m;
cin >> n >> m;
for(int i=1; i<=n; i++)
cin >> a[i];
int l=1;
for(int r=1; r<=n; r++) {
s += a[r];
if(s < m) continue;
while(s>=m)
{
s -= a[l];
l ++;
if(s==m)
{
cnt++;
break;
}
}
}
cout << cnt;
return 0;
}
题目描述 Description
给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。
输入描述 Input Description
第一行,两个正整数,n k,n表示数组元素个数
第二行,n个正整数,a1 a2 a3 … an
输出描述 Output Description
和为k的连续子数组的个数
样例输入 Sample Input
5 5
1 2 3 4 5
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
1<=n<=1,000,000 1<=k<=50 1<=ai<=50
为啥不对,该怎么写?