https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/submissions/

class Solution:def findContinuousSequence(self, target: int) -> List[List[int]]:# 对于一个数target,输出所有和为 target 的连续正整数序列ans=[]for i in range(1,target):L=[]sum=0for j in range(i,target):L.append(j)sum+=jif(sum==target):ans.append(L)breakelif sum>target:breakreturn ans

模拟大法好

只是效率低
我写题目的习惯都是能解就先解出来,就算是很低级的解法也没关系。只有解出来之后才去思考更优化的解法,不然写半天一个解法都没想出来,挫败感很强。

下面尝试更多解法

two points
仔细分析一下,序列是连续的,并且很像滑动窗口,自然地想到了two points的思路

class Solution:def findContinuousSequence(self, target: int) -> List[List[int]]:# 对于一个数target,输出所有和为 target 的连续正整数序列ans=[]i,j=1,1L=[i for i in range(target)]s=0while i<target//2+1:t=L[i:j]s=sum(t)if(s==target):ans.append(t)i+=1elif s>target:i+=1elif s<target:j+=1return ans

并且i的区间肯定是只取到target/2+1的整数,因为任何一个数的一半加上大于它一半的数可能会超过它了

再尝试优化一下,发现并不用每次都切片,只需要记录i,j和切片区间的和就行了

class Solution:def findContinuousSequence(self, target: int) -> List[List[int]]:# 对于一个数target,输出所有和为 target 的连续正整数序列ans=[]i,j=1,1L=[i for i in range(target)]s=1while i<target//2+1:if(s==target):ans.append(L[i:j+1])s-=ii+=1elif s>target:s-=ii+=1elif s<target:j+=1s+=jreturn ans

又高了一点

想不到更好的方法了,贴一下题解
https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/solution/mian-shi-ti-57-ii-he-wei-sde-lian-xu-zheng-shu-x-2/

和别人的题解,讲得很清楚
https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/solution/xiang-jie-hua-dong-chuang-kou-fa-qiu-gen-fa-jian-g/

leetcode 面试题57 - II. 和为s的连续正数序列相关推荐

  1. 面试题57 - II. 和为s的连续正数序列 golang

    题目 面试题57 - II. 和为s的连续正数序列 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小 ...

  2. 剑指Offer - 面试题57 - II. 和为s的连续正数序列(滑动窗口)

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

  3. 面试题57 - II. 和为s的连续正数序列

    题解: https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/solution/mian-shi-ti-5 ...

  4. 剑指offer面试题57 - II. 和为s的连续正数序列(双指针)(滑动窗口)

    题目描述 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 思路 详见链接 代码 clas ...

  5. 【LeetCode】剑指 Offer 57 - II. 和为s的连续正数序列

    [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 文章目录 [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 一.求和公式 二.滑动窗口(双指针 ...

  6. LeetCode Algorithm 剑指 Offer 57 - II. 和为s的连续正数序列

    剑指 Offer 57 - II. 和为s的连续正数序列 Ideas 区间问题首先想到用双指针. 因为这题没有给定数组,其实相当于就是一个从1到target的数组,然后直接套双指针的模板就可以了. 双 ...

  7. Leetcode 剑指 Offer 57 - II. 和为s的连续正数序列 (每日一题 20210809)

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

  8. 剑指 Offer 57 - II. 和为s的连续正数序列 思考分析

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

  9. 2021-08-28剑指 Offer 57 - II. 和为s的连续正数序列

    双指针 1)终止条件target = = sum: 2)target > sum 的时候,left++: 3)target < sum 的时候,right++: 5)sum = ([rig ...

  10. LeetCode 面试题57 - II(剑指offer) 和为s的连续正数序列

    今天毕业五年了,一直忙于工作和享受,自从当年找完工作后就一直没有再刷过题,作为搬砖的码农,觉得还是应该养成长期刷题的习惯坚持下去.之前坚持了每天被一会单词,如今雅思一本也快看完了,从今天开始准备在保证 ...

最新文章

  1. 【视频课】言有三每天答疑,38课深度学习+超60小时分类检测分割数据算法+超15个Pytorch框架使用与实践案例助你攻略CV...
  2. Python 和 C/C++ 拓展程序的性能优化
  3. DFS水题 URAL 1152 False Mirrors
  4. 为什么阿里巴巴要求 POJO 中不能使用基本数据类型?
  5. 数据可视化系列(二):艺术画笔见乾坤
  6. 音乐语音识别,one speech recognition,音标,读音,翻译,英文例句,英语词典
  7. slf4j 和 log4j2 架构设计
  8. 2013年计算机考试题库,2013年计算机三级数据库上机冲刺试题一及答案
  9. 难道是我洞悉了CSDN网站订阅专栏收益的秘密?带你看看网站专栏一天营收几何?
  10. Cadence PSpice 补充1:脉冲信号源的详细介绍与使用方法图文演示
  11. 什么是对称加密(对称加密简介)
  12. Day05——综合任务1、顺序表
  13. PCA降维+SVR+数据可视化 实战记录
  14. Codeforces Round #486 (Div. 3)
  15. APNS部署教程2(证书配置)
  16. 【损失函数系列】softmax loss损失函数详解
  17. 凝心聚力,不负好时光——慧慧兔团建拓展之旅
  18. mysql占用内存过高调优方法
  19. 一文搞懂异常检测中离群、异常、新类、开集、分布外检测异同
  20. VB中使用DirectX库的简明教程(3)

热门文章

  1. oracle重建orainventory,重建oraInventory解决ORA-20001
  2. RHEL7配置中文输入法-智能拼音
  3. html语言em,html中em单位 网页代码的问题:em是什么单位?
  4. ArcEngine代码 两规冲突检测
  5. Python心法:numpy命令关于axis=0,axis=1,axis=2
  6. 界面·财联社完成C轮融资,转型新型金融信息服务商
  7. 暑假计算机教育培训总结,暑假计算机培训心得体会
  8. 充气娃娃也好玩——在ESXi上安装Panabit与PanaLog(二)通过U盘引导GRUB安装ESXi
  9. 分页插件Kaminari
  10. 3.25万颗!真正前装上车的激光雷达供应商有哪几家?