《剑指offer》和为s的连续正数序列
题目:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
输出描述:
输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
解析:无需循环到和为sum为止,而是只需要循环到sum/2+1即可。满足条件的序列添加进list即可
import java.util.ArrayList;
public class Solution {public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {ArrayList<ArrayList<Integer>> result = new ArrayList<>();for(int i=1;i<=(sum/2+1);i++){for(int j=i+1;j<=(sum/2+1);j++){//子序列累加int totalSum=sum(i,j);//子序列区间的和if(totalSum==sum){//子序列区间的和为sum,即满足条件,可以到result了ArrayList<Integer> temp = new ArrayList<>();for(int m=i;m<=j;m++){temp.add(m);}result.add(temp);}if(totalSum>sum)//子序列的和都开始大于sum,无需在继续下去,break跳出循环break;}}return result;}public int sum(int start,int end){//给子序列区间求和int sum=0;for(int i=start;i<=end;i++){sum+=i;}return sum;}
}
《剑指offer》和为s的连续正数序列相关推荐
- 和为s的连续正数序列java_剑指Offer41:和为S的连续正数序列(Java)
思路分析: 在左端建一个窗口[L,R],从左滑倒右.当[L,R]之间的数加起来等于sum,保存起来:若小于sum,则R向右移动:若大于sum,则L向右移动. 题目描述: 小明很喜欢数学,有一天他在做数 ...
- 剑指offer:和为S的连续正数序列
题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...
- 41.和为s的两个数字 VS 和为s的连续正数序列
为什么80%的码农都做不了架构师?>>> 题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. ...
- 和为s的两个数字与和为s的连续正数序列
题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 分析:选择数组的两端,将其相加,然后与s比较,如果比s大,则将指向 ...
- 【剑指offer-Java版】41和为s的两个数字VS和为s的连续正数序列
和为S的两个数字以及和为S的连续正数序列:输入是一个递增排序的数组,查找其中一对满足和为S的数,输出.如果有多对,输出其中一对 public void FindNumbersWithSum(int n ...
- python【力扣LeetCode算法题库】面试题57 - II-和为s的连续正数序列(滑动窗口)
面试题57 - II. 和为s的连续正数序列 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排 ...
- 九度oj 题目1354:和为S的连续正数序列
题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久, ...
- 程序员面试题精选100题(26)-和为n连续正数序列[算法]
题目:输入一个正数n,输出所有和为n连续正数序列. 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5.4-6和7-8. 分析:这是网易的一道面试题. 这道题和 ...
- LeetCode Algorithm 剑指 Offer 57 - II. 和为s的连续正数序列
剑指 Offer 57 - II. 和为s的连续正数序列 Ideas 区间问题首先想到用双指针. 因为这题没有给定数组,其实相当于就是一个从1到target的数组,然后直接套双指针的模板就可以了. 双 ...
最新文章
- 举个栗子看如何做MySQL 内核深度优化
- mysql 140824,Oracle 12c创建可插拔数据库(PDB)及用户
- python3安装opencv
- oracle cusor 定义
- RBAC模型:设计思路
- numpy T、transpose()函数、swapaxes()函数
- VC2010“添加资源-引入JPG图片”会改变图片大小
- 纠结于wpf 多国语言方案,希望各位指点-softbar
- Nodejs 了解web服务器
- Django中的prefetch_related()函数优化
- JavaScript正则表达式使用详解
- jqueryui时间插件_jQueryUI Progressbar插件
- 百度富文本php配置方法
- 小甲鱼python学习笔记之函数(一)
- 用动画做出一个正方体并且3d旋转,详解
- python+FFmpeg实现对m3u8文件内的ts视频多线程下载、解密、合并成MP4,并输出。
- 20210706 为什么edge无法修改主页?或者启动后两个页面?
- 仿微信/支付宝的自定义提现密码输入(二)
- 网络篇 思科设备的登陆方式07
- Mac苹果电脑怎样安装Python
热门文章
- jQuery——parent(),parents(),offsetParent(),closets()方法
- CSS常用选择器、伪元素选择器、伪类选择器大全——响应式Web系列学习笔记
- 【双百解法】剑指 Offer 11. 旋转数组的最小数字
- 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】
- 0820-拼多多二面
- Kubernetes二进制集群部署+Web管理界面+kubectl 命令管理+YAML文件详解(集合)
- 批量ping脚本shell_30个Linux Shell脚本经典案例(上)
- RT-Thread工程代码框架分析——(1)启动流程
- linux 显示器分辨率设置太小了,显示器不显示 如何在设置回来,当“显示设置”中的分辨率不可用时,如何使用xrandr设置自定义分辨率...
- 先排列再排行 html,三国中猛将的权威排名 颜良为何排列第二