分类
- 定长:窗口长度固定
- 不定长:窗口长度变化
定长
看题目欧拉计划8
https://axieyun.top/posts/28ef.html
不定长
应用
- 在某一段连续不定区间求满足某些条件的答案
方法
- 双指针法
看题
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为K的连续正数序列? Good Luck!
题解
#include <iostream>
using namespace std;
int main() {
int k, temp = 0;
cin >> k;
for (int i = 1, j = 1; i < (k >> 1) + 1 && j < (k >> 1) + 1;) {
if (temp < k) temp += j, j++;
else if (temp > k) temp -= i, i++;
else {
for (int a = i; a < j; a++) cout << a << ' ';
cout << endl;
temp -= i;
i++;
}
}
return 0;
}