2019-08-14 剑指 和为S的连续正数序列

2019-08-14  本文已影响0人  mztkenan

20min,卡在循环跳不出来
1.当找到一个结果,如何继续往下寻找

可以使用求和公式

class Solution:
    def FindContinuousSequence(self, sum):
        mid=sum//2
        small,big=1,2
        tmp=small+big
        res=[]
        while small<=mid:
            # print(small,big)
            if tmp==sum:
                seq=[]
                for i in range(small,big+1):seq.append(i)
                res.append(seq)
                tmp-=small #很重要
                small+=1 #很重要
            elif tmp>sum:
                tmp-=small
                small+=1
            else:
                big+=1 #符号写错
                tmp+=big
        return res




if __name__ == '__main__':
    t=Solution()
    print(t.FindContinuousSequence(9))
    print(t.FindContinuousSequence(100))
    print(t.FindContinuousSequence(0))
    print(t.FindContinuousSequence(-1))
    print(t.FindContinuousSequence(2))
上一篇 下一篇

猜你喜欢

热点阅读