拿到手可能一下感觉看起来很简单但是不知道怎么做,但是细想一下,就发现不难,遍历就完事儿了, sum1表示当前累加值,res1表示当前累加值满足 sum1 == tsum情况下的序列,res用来保存所有满足情况的序列
1.首先至少要是两个数相加得到 tsum,那么遍历时候只需要遍历 到 (tsum+1)//2 就可以了,如果 9=4+5就是最大了,不可能还有超过 tsum一半的连续值相加的情况
2.然后在调试的时候发现会报错,因为当tsum<3的时候,其实不可能存在满足条件的情况,所以可以直接列出来降低复杂度
并且因为是for i in range(1, (tsum+1)//2) 所以出来的序列一定满足条件 序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序


# -*- coding:utf-8 -*-
class Solution:
    def FindContinuousSequence(self, tsum):
        # write code here
        res = []
        if tsum < 3:
            return []
        for i in range(1, (tsum+1)//2):
            sum1 = 0
            res1 = []
            while sum1 < tsum:
                sum1 += i
                res1.append(i)
                i += 1
            if sum1 == tsum:
                res.append(res1)
        return res