时间限制:1秒 空间限制:32768K
题目描述
输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序。
我的代码
class Solution {
public:
vector<vector<int> > FindContinuousSequence(int sum) {
vector<vector<int>> res;
if(sum<3)
return res;
sum<<=1;
int k,l;
for(k=int(sqrt(sum))+1;k<sum;k++){
if(sum%k==0){
l=sum/k;
if((k+l)%2==1){
int start=(k-l+1)/2;
int end=(k+l-1)/2;
vector<int> tmp;
for(int i=start;i<=end;i++)
tmp.push_back(i);
res.push_back(tmp);
}
}
}
return res;
}
};
运行时间:4ms
占用内存:476k
网友评论