LeetCode剑指offer57 II和为s的连续正数序列(用vector模拟滑动窗口)

Posted wx62cea850b9e28

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode剑指offer57 II和为s的连续正数序列(用vector模拟滑动窗口)相关的知识,希望对你有一定的参考价值。


一、题目

【LeetCode剑指offer57

二、思路

因为找的是连续子序列(并且题目的原序列是从小到大元素排列)的和为​​target​​​,所以使用滑动窗口,如果加上当前元素后​​sum​​​满足条件则​​push_back​​​,如果加上当前元素后​​sum​​​过大了,则需要从该滑动窗口中,减去最前面的元素(最小元素),减着减着可能就找到新一种情况,如果减到​​sum​​​还比​​target​​小了,那没必要继续减了,继续扩大滑动窗口的右侧边界。

三、代码

class Solution 
public:
vector<vector<int>> findContinuousSequence(int target)
vector<vector<int>>ans;
vector<int>temp;
int sum = 0;
for(int i = 1; i <= target/2 + 1; i++)
sum += i;
temp.push_back(i);
if(sum == target)
ans.push_back(temp);
continue;

while(sum > target)
sum -= temp[0];
temp.erase(temp.begin());
//删除头元素
if(sum == target)
ans.push_back(temp);
continue;



return ans;

;


以上是关于LeetCode剑指offer57 II和为s的连续正数序列(用vector模拟滑动窗口)的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列

LeetCode剑指offer57 II和为s的连续正数序列(用vector模拟滑动窗口)

剑指 Offer 57 - II. 和为s的连续正数序列

剑指offer双指针 57-II.和为s的连续正数序列

0510-II173942555757-II64

LeetCode——剑指 Offer 57 和为s的两个数字