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