传送门
nowcoder
leetcode
题目描述
找出所有和为 S 的连续正数序列,并输出该序列。
序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序。
C++ 代码 - nowcoder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
class Solution { public: vector<vector<int> > FindContinuousSequence(int sum) { vector<vector<int>> res;
int low = 1, high = 2; while (low < high) { int curSum = (low + high) * (high - low + 1) / 2; if (curSum == sum) { vector<int> curRes; for (int i = low; i <= high; i ++) { curRes.push_back(i); } res.push_back(curRes); low ++; } else if (curSum < sum) { high ++; } else { low ++; } }
return res; } };
|
C++ 代码 - leetcode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
class Solution { public: vector<vector<int>> fileCombination(int target) { vector<vector<int>> res; vector<int> curRes;
int l = 1, r = 2; while (l < r) { int sum = (l + r) * (r - l + 1) / 2; if (sum == target) { curRes.clear(); for (int i = l; i <= r; i ++) { curRes.emplace_back(i); } res.emplace_back(curRes); l ++; } else if (sum < target) { r ++; } else { l ++; } }
return res; } };
|