求助一道题
查看原帖
求助一道题
550880
谁家小迷妹鸭楼主2021/11/20 22:42
#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

为啥不对,该怎么写?

2021/11/20 22:42
加载中...