90 和为s的连续正数序列

问题描述:输入一个正整数target,输出所有和为target的连续正整数序列(至少包含两个数),序列内的数字大小由小到大排列,不同序列按照首个字母从小到大排列。

for循环求解:对于for循环而言复杂度为n2较高。

java 复制代码
public List<List<Integer>>sumS(int target)
{
List<List<Integer>> res=new List<>();
for(int i=1;i<target/2;i++)
{
int sum=i;
List<Integer>list=new LinkedList<>();
list.add(i);
for(int j=i+1;j<target/2;j++)
{
if(sum+j>target)
break;
}else if(sum+j==target)
{
list.add(j);
res.add(list);
}else
{
sum+=j;
list.add(j)
}
}
​​​​​​​return res;
}

滑动窗口解决:定义一个sum(int类型)表示从左left到右right这个区间中的和,若sum小于target,则right右移,sum+nums[target],若大于taget,则left左移,若等于,则更新价收入数组中。

java 复制代码
public List<List<Integer>>sumS(int target)
{
int left=1;
int right=2;
int sum=left+right;
List<int[]>res=new LinkedList<>();
while(left<target/2)
{
if(sum<target)
{
right++;
sum+=right;
}else if(sum>target)
{
sum-=left;
left++;
}else
{
int []array=new int[right-left+1];
for(int i=0;i<array.length;i++)
{
array[i]=left+i;
}
res.add(array);
}
}
return res.toArray(new int[res.size()][]);
}
相关推荐
CoovallyAIHub1 小时前
CVPR 2026 | MixerCSeg:仅2.05 GFLOPs刷新四大裂缝分割基准!解耦Mamba隐式注意力,CNN+Transformer+Mamba三
深度学习·算法·计算机视觉
NE_STOP1 小时前
MyBatis-plus进阶之映射与条件构造器
java
CoovallyAIHub1 小时前
YOLO26-Pose 深度解读:端到端架构重新设计,姿态估计凭什么跨代领先?
深度学习·算法·计算机视觉
CoovallyAIHub2 小时前
化工厂气体泄漏怎么用AI检测?30张图3D重建气体泄漏场景——美国国家实验室NeRF新研究
深度学习·算法·计算机视觉
Seven974 小时前
NIO的零拷贝如何实现高效数据传输?
java
颜酱13 小时前
图的数据结构:从「多叉树」到存储与遍历
javascript·后端·算法
架构师沉默18 小时前
别又牛逼了!AI 写 Java 代码真的行吗?
java·后端·架构
zone773919 小时前
006:RAG 入门-面试官问你,RAG 为什么要切块?
后端·算法·面试
CoovallyAIHub21 小时前
OpenClaw 近 2000 个 Skills,为什么没有一个好用的视觉检测工具?
深度学习·算法·计算机视觉
CoovallyAIHub21 小时前
CVPR 2026 | 用一句话告诉 AI 分割什么——MedCLIPSeg 让医学图像分割不再需要海量标注
深度学习·算法·计算机视觉