美文网首页
2019-08-14 剑指 和为S的连续正数序列

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

作者: mztkenan | 来源:发表于2019-08-14 09:58 被阅读0次

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))

相关文章

网友评论

      本文标题:2019-08-14 剑指 和为S的连续正数序列

      本文链接:https://www.haomeiwen.com/subject/xomwjctx.html