剑指 Offer 57 - II. 和为s的连续正数序列 (Python 实现)

剑指 Offer 57 - II. 和为s的连续正数序列 (Python 实现),第1张

剑指 Offer 57 - II. 和为s的连续正数序列 (Python 实现)

题目:

输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。
序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。

示例 1:

输入:target = 9
输出:[[2,3,4],[4,5]]

示例 2:

输入:target = 15
输出:[[1,2,3,4,5],[4,5,6],[7,8]]

代码:

class Solution:
    def findContinuousSequence(self, target: int) -> List[List[int]]:
        l, r, sum = 1, 2, 3
        res = []
        while l < r:
            if sum == target:
                res.append(list(range(l, r+1)))               
                sum -= l
                l += 1
            elif sum > target:
                sum -= l
                l += 1
            else:
                r += 1
                sum += r
        return res

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5689432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存