难度:简单。
找规律,注意结果的数字要大于0,要按照顺序排列。
正确解法:
class Solution {
public:
vector<vector<int>> findContinuousSequence(int target) {
vector<vector<int>> res;
if(target == 3){
res.emplace_back(vector<int>{1,2});
return res;
}
for(int i = target / 2; i >= 2; --i){
if(i % 2 == 0 && target % i == i / 2){
vector<int> temp;
int k = target / i;
if(k - i / 2 + 1 <= 0)continue;
for(int j = k - i / 2 + 1; j <= k + i / 2; j++)temp.emplace_back(j);
res.emplace_back(temp);
}
else if(i % 2 && target % i == 0){
vector<int> temp;
int k = target / i;
if(k - i / 2 <= 0)continue;
for(int j = k - i / 2; j <= k + i / 2; j++)temp.emplace_back(j);
res.emplace_back(temp);
}
}
return res;
}
};
结果: