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))
网友评论