输入一个正整数
target
,输出所有和为target
的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。
class Solution:
def findContinuousSequence(self, target: int) -> List[List[int]]:
res = []
l,r = 1,2
sum_ = 3
while l < r:
if sum_ == target:#相等时l+1
res.append([x for x in range(l,r+1)])
sum_-=l
l+=1
elif sum_ < target:#小于时r+1
r+=1
sum_+=r
else:#大于时l+1
sum_-=l
l+=1
return res