思想:滑动窗口 i:滑动窗口左边界 j:滑动窗口右边界 tsum:目标数值 sum:当前和 前提条件:i<=tsum//2 #python中 %取余 、// 求商 、/ 求值
当sum<tsum 窗口右边界右移,sum+j #注意此题中索引即为对应数值
当sum>tsum 窗口左边界右移,sum-i #注意此序列为递增序列,窗口无须左移
相等时 输出此时序列,并sum-=i,i+=1,寻找下一个连续正数序列
最后返回所有满足序列
class Solution:
def FindContinuousSequence(self
, tsum
):
i
=1
j
=1
res
=[]
sum=0
while i
<= tsum
//2:
if sum<tsum
:
sum+=j
j
+=1
elif sum>tsum
:
sum-=i
i
+=1
else:
arr
=list(range(i
,j
))
res
.append
(arr
)
sum-=i
i
+=1
return res