和为s的连续正数序列

Posted shuangcao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了和为s的连续正数序列相关的知识,希望对你有一定的参考价值。


题目描述
输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
思路:
设置两个变量,small,big,如果连续和小于给定值,增加big,大于给定值,增加small,如果相等,将连续序列加入结果中,同时增加small和big,以便找到下一组连续序列
代码
 1 # -*- coding:utf-8 -*-
 2 class Solution:
 3     def FindContinuousSequence(self, tsum):
 4         # write code here
 5         res = []
 6         if tsum<=2:#2及2以下不存在
 7             return res 
 8         small = 1
 9         big = 2
10         while small < big: 
11             lst = []
12             #for i in range(small,big+1,1):
13                 #lst.append(i)
14             lst = [i for i in range(small,big+1,1)] #简写方式
15             if sum(lst)> tsum:
16                 small +=1
17             elif sum(lst)< tsum:
18                 big +=1
19             else:
20                 res.append(lst)
21                 small += 1
22                 big += 1         
23         return res   
24                

 

以上是关于和为s的连续正数序列的主要内容,如果未能解决你的问题,请参考以下文章

和为S的连续正数序列

41和为S的连续正数序列

剑指offer和为S的连续正数序列

剑指offer-和为s的连续正数序列

剑指offer 和为S的连续正数序列

剑指offer-和为S的连续正数序列