题解 | #和为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