class Solution { public: vector<vector<int>> findContinuousSequence(int target) { int i = 1; // 滑动窗口的左边界 int j = 1; // 滑动窗口的右边界 int sum = 0; // 滑动窗口中数字的和 vector<vector<int>> res; while (i <= target / 2) { if (sum < target) { // 右边界向右移动 sum += j; j++; } else if (sum > target) { // 左边界向右移动 sum -= i; i++; } else { // 记录结果 左边界到右边 vector<int> arr; for (int k = i; k < j; k++) { arr.push_back(k); } res.push_back(arr); // 左边界向右移动 sum -= i; i++; } } return res; } };
剑指 Offer 57 - II. 和为s的连续正数序列
解决连续序列问题:滑动窗口算法详解
最新推荐文章于 2022-04-17 16:28:59 发布
本文解析了一种用于寻找整数序列中连续和等于目标值的滑动窗口算法,通过实例展示了如何使用Solution类中的findContinuousSequence方法,适用于编程挑战或数据结构理解

361

被折叠的 条评论
为什么被折叠?



