leetcode打卡,没什么技巧,执行太耗时了。。。
vector<vector<int>> findContinuousSequence(int target)
{
vector<vector<int>> result;
int sum = 0;
int result_index = 0;
int start_index = 0;
for(int i = 0 ; i < target; i ++)
{
//每次进来i+1,加到sum里
sum += (i+1); //i是数组的索引,要加的数是从1开始,所以i+1才是要加的数
//如果sum等于target,且当前的索引与起始索引差距大于1(即至少两个数),匹配成功
if(sum == target && (i - start_index >= 1))
{
result.push_back(vector<int>());
//cong start_index开始,循环至当前索引i,把值传到result数组
for(int j=start_index; j < (i+1); j++) {
result[result_index].push_back(j + 1);
}
//循环完之后,result索引值增加
result_index++;
//start_index的索引值也增加,为什么++而不是直接等于当前索引i,因为要考虑叠加的过程
start_index ++;
//同时和重新置0
sum = 0;
//
i = start_index - 1;
}
//如果是和大于target,匹配不上
else if(sum > target)
{
//起始索引增加
start_index ++;
//和置0,重新算
sum = 0;
//当前索引值变成start_index - 1,等等执行完会i++,位置是与start_index一样
i = start_index-1;
}
}
return result;
}