剑指offer(57)-II
剑指offer(57)-II
剑指 Offer 57 - II. 和为s的连续正数序列
输入一个正整数 target
,输出所有和为 target
的连续正整数序列(至少含有两个数)。
序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。
示例 1:
输入:target = 9
输出:[[2,3,4],[4,5]]
示例 2:
输入:target = 15
输出:[[1,2,3,4,5],[4,5,6],[7,8]]
限制:
1 <= target <= 10^5
简单滑动窗口
class Solution {
public:
vector<vector<int>> findContinuousSequence(int target) {
vector<vector<int>>ans;
//滑动窗口
int l=1;int r=2;int s=3;
while(l<r){
//如果和==target 存入结果
if(s==target){
vector<int>res;
for(int i=l;i<=r;i++){
res.push_back(i);
}
ans.push_back(res);
}
//如果和大于等于target 就需要缩短左边界 让s变小
if(s>=target){
s-=l;//更新s
l++;
}else{
//如果和小于target需要放大右边界
r++;
s+=r;//更新s
}
}
return ans;
}
};
本文来自博客园,作者:{BailanZ},转载请注明原文链接:https://www.cnblogs.com/BailanZ/p/16226666.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理