菜鸟扣代码第45天:leetcode 剑指Offer57-Ⅱ--和为s的连续正数序列

题目描述:

输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。

序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。

示例 1:

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

代码:

class Solution:
    def findContinuousSequence(self, target: int) -> List[List[int]]:
        l, r, n = 0, 1, (target+1)//2 + 1
        if n <= 2: return []
        nums = [i for i in range(1, n)]
        out = []
        # print(nums)
        res = nums[0] + nums[1]
        while True:
            if res == target:#等于目标值,加入输出,但是还是要尝试右移
                out.append(nums[l:r+1])
                r += 1
                if r < n-1:
                    res += nums[r]
                else:
                    break
                    
            elif res < target:#小于目标值,右移
                r += 1
                if r < n-1:
                    res += nums[r]
                else:
                    break
            else:#大于目标值,左移
                res -= nums[l]
                l += 1
        # print(out)
        return out

思路:

因为要输出的是连续的正数数列,所以这个题目可以采用滑动窗口的思想。
在这里插入图片描述
当窗口的和小于target时,窗口的和需要增加,因此右边界®需要向右移动;
当窗口的和大于tatget时,窗口的和需要减小,因此左边界(l)需要向右移动;
当窗口的和恰好等于target时,记录下此时的结果[i,j],这是第一个也是唯一一个以i开头的序列,接下来再找i+1开头的序列,将窗口的左边界向右移动。

要将电视盒子Armbian系统,可以按照以下步骤进行操作: 1. 将盒子接入电脑所在的同一局域网内,并启动盒子进入安卓系统。查看盒子的IP地址并记住。 2. 在电脑上打开“开心电视助手”软件,并连接盒子的IP地址。在盒子上使用遥控器或键盘点击确认同意连接。 3. 在电视助手软件的调试栏中,设置盒子从U盘启动并确认。然后点击确认后,盒子将自动重启。 4. 在盒子重启时,迅速将制作好Armbian系统的U盘插入盒子的U口(靠近网口一侧)。 5. 盒子将从U盘启动,并进入盒子机界面。 6. 使用SSH远程工具软件连接盒子中的Armbian系统。确保连接成功后,使用命令"armbian-install"将Armbian系统写入盒子的EMMC存储器。 7. 在机过程中,选择ID号为305,然后选择exft4分区。 8. 等待机过程完成。当屏幕上显示"successful"提示时,表示机成功。 9. 关闭电源,拔下U盘,并再次通电重启盒子。 10. 第一次重启后,可能会出现黑屏现象。不要着急,第二次给盒子断电,插回U盘,然后再次通电操作盒子,它将正常引导系统。 11. 系统引导完成后,盒子的指示灯会变绿。第三次给盒子断电,拔下U盘,再插电,盒子就能正常从EMMC存储器引导并进入Armbian系统了。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [安卓盒子 魔百盒311-1a YST Armbian系统机教程](https://blog.csdn.net/hnhgwfm/article/details/128518150)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值