剑指offer:和为S的连续整数序列
先定义个返回值为二维数组的 FindContinuousSequence函数,有个int型的sum参数,定义保存最后结果的二维数组result,定义个动态窗,当while为真,执行循环,先定义求和的值,是第一个加最后一个一起乘n位除2,如果求和的值sunTemp等于给的sum值,那么把窗内的值放入result,如果窗内的值小于sum,那么窗右移,即high++;,如果窗内的值大于sum,那么窗右移,即low++;最后返回压入result的值!!!
class Solution {
public:
vector<vector<int> > FindContinuousSequence(int sum) {
vector<vector<int >> result;
int low =1,high =2;
while(low<high){
int sumTemp = (low+high)*(high-low+1)/2;
if(sumTemp==sum){
vector<int> resultTemp;
for(int i =low;i<=high;++i)
{
resultTemp.push_back(i);
}
result.push_back(resultTemp);
low++;
}else if (sumTemp<sum) {
high++;
}
else
{low++;
}
}
return result;
}
};
#剑指offer##23届找工作求助阵地#