AcWing 76. 和为S的连续正数序列
原题链接
中等
作者:
李大戮
,
2019-09-05 00:31:53
,
所有人可见
,
阅读 841
C++ 代码
class Solution {
public:
vector<vector<int> > findContinuousSequence(int sum) {
vector <int> a;
for(int i = 1; i <= sum; i++) {
a.push_back(i);
}
// (首项+末项)×项数÷2
vector<vector<int> > rs;
// i 最多只会到sum的一半
for(int i = 0; i <= sum/2; i++) {
for (int j = sum - 1; j > i; j--) {
if ((a[i] + a[j]) * (j - i + 1) / 2 == sum) {
vector <int> rr;
int k = i;
while(k <= j) {
rr.push_back(a[k]);
k++;
}
rs.push_back(rr);
}
}
}
return rs;
}
};