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

和为S的连续正数序列

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

class Solution:
    def FindContinuousSequence(self , sum: int) -> List[List[int]]:
		# 左右指针求取区间的值
        left = 1
        right = 2
        res = []
        
        while left < right:
            cur = (left+right)*(right-left+1)/2  # 求和公式
            
            if cur == sum:
                res.append(list(range(left, right+1)))    # 满足记录下来
                left +=1       # or right +=1, 探索其他组的值
            elif cur < sum:    # 如果小了,右指针往右移动
                right +=1
            else:              # 如果大了,左指针往右移动
                left  +=1
                
        return res 
        
全部评论

相关推荐

点赞 评论 收藏
分享
one_t:硕还是本?什么岗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务