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