题解 | #和为S的连续正数序列#

和为S的连续正数序列

http://www.nowcoder.com/practice/c451a3fd84b64cb19485dad758a55ebe

# -*- coding:utf-8 -*-
class Solution:
    def FindContinuousSequence(self, tsum):
        # write code here
        
        ret = []
        if tsum == 1:
            return []
        leftCursor = 1
        rightCursort = 2
        curSum = 3
        
        if tsum == 3:
            return [[1, 2]]
        
        
        for idx, item in enumerate(range(3, 100+1)):
            curSum = curSum + item
#             print(curSum)
            if curSum == tsum and item > leftCursor:
                retItem = [i for i in range(leftCursor, item+1)]
                ret.append(retItem)
            elif curSum > tsum:
                while curSum > tsum:
                    curSum -= leftCursor
                    leftCursor += 1
                    if curSum == tsum and item > leftCursor :
                        retItem = [i for i in range(leftCursor, item+1)]
                        ret.append(retItem)               
                
                
        return ret
                
                
        
        
        
全部评论

相关推荐

09-03 17:49
已编辑
四川大学 供应链管理
迷茫的大四🐶:提前实习有些坑的,卡毕业后薪资以及能力不达预期提前违约这种
我的OC时间线
点赞 评论 收藏
分享
10-03 17:08
已编辑
西安电子科技大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务