题目描述
输出描述:
输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
class Solution {
public:
vector<vector<int> > FindContinuousSequence(int sum)
{
vector<vector<int> >res;
if(sum<3)return res;
int small=1;
int big=2;
int mid=(sum+1)/2;
int cursum=small+big;
while(small<mid)
{
if(cursum==sum)
{
output(small,big,res);
big++;
cursum+=big;
}
else if(cursum<sum)
{
big++;
cursum=cursum+big;
}
else
{
cursum-=small;
small++;
}
}
return res;
}
void output(int small,int big,vector<vector<int> >&res)
{
vector<int> temp;
for(int i=small;i<=big;i++)
{
temp.push_back(i);
}
res.push_back(temp);
}
};