Skip to content

Latest commit

 

History

History
28 lines (21 loc) · 808 Bytes

面57-和为s的连续正序列.md

File metadata and controls

28 lines (21 loc) · 808 Bytes

输入一个正整数 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