标签:lse 相等 sum bsp 开始 变量 color else seq
题目描述
输出所有和为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
标签:lse 相等 sum bsp 开始 变量 color else seq
原文地址:https://www.cnblogs.com/shuangcao/p/12794076.html