题解 | #和为S的连续正数序列#
和为S的连续正数序列
http://www.nowcoder.com/practice/c451a3fd84b64cb19485dad758a55ebe
public:
vector<vector<int> > FindContinuousSequence(int sum) {
int l=1,r=1;
int temp=0;
vector<vector<int> >ret;
while(l<=sum/2){//只需要满足一半就够了
if(temp<sum){
temp+=r;//小于sum,右指针向右移
r++;
}
else if(temp>sum){//如果数比sum大,左指针向右移
temp-=l;
l++;
}
else{
vector<int>ans;
for(int i=l;i<r;i++){//相等就放入ans中
ans.push_back(i);
}
temp-=l;
l++;//左指针开始向右移
ret.push_back(ans);
}
}
return ret;
}
};
查看30道真题和解析
