题目:小明很喜欢数学,有一天他在做数学作业时,要求计算出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的连续正数序列相关推荐

  1. 和为s的连续正数序列java_剑指Offer41:和为S的连续正数序列(Java)

    思路分析: 在左端建一个窗口[L,R],从左滑倒右.当[L,R]之间的数加起来等于sum,保存起来:若小于sum,则R向右移动:若大于sum,则L向右移动. 题目描述: 小明很喜欢数学,有一天他在做数 ...

  2. 剑指offer:和为S的连续正数序列

    题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...

  3. 41.和为s的两个数字 VS 和为s的连续正数序列

    为什么80%的码农都做不了架构师?>>>    题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可.   ...

  4. 和为s的两个数字与和为s的连续正数序列

    题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 分析:选择数组的两端,将其相加,然后与s比较,如果比s大,则将指向 ...

  5. 【剑指offer-Java版】41和为s的两个数字VS和为s的连续正数序列

    和为S的两个数字以及和为S的连续正数序列:输入是一个递增排序的数组,查找其中一对满足和为S的数,输出.如果有多对,输出其中一对 public void FindNumbersWithSum(int n ...

  6. python【力扣LeetCode算法题库】面试题57 - II-和为s的连续正数序列(滑动窗口)

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

  7. 九度oj 题目1354:和为S的连续正数序列

    题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久, ...

  8. 程序员面试题精选100题(26)-和为n连续正数序列[算法]

    题目:输入一个正数n,输出所有和为n连续正数序列. 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5.4-6和7-8. 分析:这是网易的一道面试题. 这道题和 ...

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

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

最新文章

  1. 举个栗子看如何做MySQL 内核深度优化
  2. mysql 140824,Oracle 12c创建可插拔数据库(PDB)及用户
  3. python3安装opencv
  4. oracle cusor 定义
  5. RBAC模型:设计思路
  6. numpy T、transpose()函数、swapaxes()函数
  7. VC2010“添加资源-引入JPG图片”会改变图片大小
  8. 纠结于wpf 多国语言方案,希望各位指点-softbar
  9. Nodejs 了解web服务器
  10. Django中的prefetch_related()函数优化
  11. JavaScript正则表达式使用详解
  12. jqueryui时间插件_jQueryUI Progressbar插件
  13. 百度富文本php配置方法
  14. 小甲鱼python学习笔记之函数(一)
  15. 用动画做出一个正方体并且3d旋转,详解
  16. python+FFmpeg实现对m3u8文件内的ts视频多线程下载、解密、合并成MP4,并输出。
  17. 20210706 为什么edge无法修改主页?或者启动后两个页面?
  18. 仿微信/支付宝的自定义提现密码输入(二)
  19. 网络篇 思科设备的登陆方式07
  20. Mac苹果电脑怎样安装Python

热门文章

  1. jQuery——parent(),parents(),offsetParent(),closets()方法
  2. CSS常用选择器、伪元素选择器、伪类选择器大全——响应式Web系列学习笔记
  3. 【双百解法】剑指 Offer 11. 旋转数组的最小数字
  4. 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】
  5. 0820-拼多多二面
  6. Kubernetes二进制集群部署+Web管理界面+kubectl 命令管理+YAML文件详解(集合)
  7. 批量ping脚本shell_30个Linux Shell脚本经典案例(上)
  8. RT-Thread工程代码框架分析——(1)启动流程
  9. linux 显示器分辨率设置太小了,显示器不显示 如何在设置回来,当“显示设置”中的分辨率不可用时,如何使用xrandr设置自定义分辨率...
  10. 先排列再排行 html,三国中猛将的权威排名 颜良为何排列第二