leetcode 面试题57 - II. 和为s的连续正数序列
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的连续正数序列相关推荐
- 面试题57 - II. 和为s的连续正数序列 golang
题目 面试题57 - II. 和为s的连续正数序列 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小 ...
- 剑指Offer - 面试题57 - II. 和为s的连续正数序列(滑动窗口)
1. 题目 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 示例 1: 输入:targe ...
- 面试题57 - II. 和为s的连续正数序列
题解: https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/solution/mian-shi-ti-5 ...
- 剑指offer面试题57 - II. 和为s的连续正数序列(双指针)(滑动窗口)
题目描述 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 思路 详见链接 代码 clas ...
- 【LeetCode】剑指 Offer 57 - II. 和为s的连续正数序列
[LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 文章目录 [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 一.求和公式 二.滑动窗口(双指针 ...
- LeetCode Algorithm 剑指 Offer 57 - II. 和为s的连续正数序列
剑指 Offer 57 - II. 和为s的连续正数序列 Ideas 区间问题首先想到用双指针. 因为这题没有给定数组,其实相当于就是一个从1到target的数组,然后直接套双指针的模板就可以了. 双 ...
- Leetcode 剑指 Offer 57 - II. 和为s的连续正数序列 (每日一题 20210809)
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数).序列内的数字由小到大排列,不同序列按照首个数字从小到大排列.示例 1:输入:target = 9 输出: ...
- 剑指 Offer 57 - II. 和为s的连续正数序列 思考分析
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 示例 1: 输入:target = 9 ...
- 2021-08-28剑指 Offer 57 - II. 和为s的连续正数序列
双指针 1)终止条件target = = sum: 2)target > sum 的时候,left++: 3)target < sum 的时候,right++: 5)sum = ([rig ...
- LeetCode 面试题57 - II(剑指offer) 和为s的连续正数序列
今天毕业五年了,一直忙于工作和享受,自从当年找完工作后就一直没有再刷过题,作为搬砖的码农,觉得还是应该养成长期刷题的习惯坚持下去.之前坚持了每天被一会单词,如今雅思一本也快看完了,从今天开始准备在保证 ...
最新文章
- 【视频课】言有三每天答疑,38课深度学习+超60小时分类检测分割数据算法+超15个Pytorch框架使用与实践案例助你攻略CV...
- Python 和 C/C++ 拓展程序的性能优化
- DFS水题 URAL 1152 False Mirrors
- 为什么阿里巴巴要求 POJO 中不能使用基本数据类型?
- 数据可视化系列(二):艺术画笔见乾坤
- 音乐语音识别,one speech recognition,音标,读音,翻译,英文例句,英语词典
- slf4j 和 log4j2 架构设计
- 2013年计算机考试题库,2013年计算机三级数据库上机冲刺试题一及答案
- 难道是我洞悉了CSDN网站订阅专栏收益的秘密?带你看看网站专栏一天营收几何?
- Cadence PSpice 补充1:脉冲信号源的详细介绍与使用方法图文演示
- 什么是对称加密(对称加密简介)
- Day05——综合任务1、顺序表
- PCA降维+SVR+数据可视化 实战记录
- Codeforces Round #486 (Div. 3)
- APNS部署教程2(证书配置)
- 【损失函数系列】softmax loss损失函数详解
- 凝心聚力,不负好时光——慧慧兔团建拓展之旅
- mysql占用内存过高调优方法
- 一文搞懂异常检测中离群、异常、新类、开集、分布外检测异同
- VB中使用DirectX库的简明教程(3)
热门文章
- oracle重建orainventory,重建oraInventory解决ORA-20001
- RHEL7配置中文输入法-智能拼音
- html语言em,html中em单位 网页代码的问题:em是什么单位?
- ArcEngine代码 两规冲突检测
- Python心法:numpy命令关于axis=0,axis=1,axis=2
- 界面·财联社完成C轮融资,转型新型金融信息服务商
- 暑假计算机教育培训总结,暑假计算机培训心得体会
- 充气娃娃也好玩——在ESXi上安装Panabit与PanaLog(二)通过U盘引导GRUB安装ESXi
- 分页插件Kaminari
- 3.25万颗!真正前装上车的激光雷达供应商有哪几家?