和为S的连续整数序列 JAVA实现
来源:互联网 发布:substring sql 编辑:程序博客网 时间:2024/05/21 18:37
题目描述
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
输出描述:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
思路很简单,就是控制好两个端,然后就是判断
import java.util.ArrayList;public class Solution { public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) { if (sum <= 0) return null; ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>(); int left = 1; int right = 2; int mid = sum/2; int curSum = left + right; while(left > 0 && right <= mid+1) { if(curSum < sum) { curSum += (++right); } else if(curSum > sum) { curSum -= left; left++; } else { result.add(formatList(left,right)); curSum -= left; left++; } } return result; } public ArrayList<Integer> formatList(int left, int right) { ArrayList<Integer> list = new ArrayList<Integer>(); for(int i = left; i <= right; i++) { list.add(i); } return list; }}
import java.util.ArrayList;public class Solution { public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) { if (sum <= 0) return null; ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>(); int left = 1; int right = 2; int mid = sum/2; int curSum = left + right; while(left > 0 && right <= mid+1) { if(curSum < sum) { curSum += (++right); } else if(curSum > sum) { curSum -= left; left++; } else { result.add(formatList(left,right)); curSum -= left; left++; } } return result; } public ArrayList<Integer> formatList(int left, int right) { ArrayList<Integer> list = new ArrayList<Integer>(); for(int i = left; i <= right; i++) { list.add(i); } return list; }}
阅读全文
1 0
- 和为S的连续整数序列 JAVA实现
- 和为s的连续整数序列
- "和为n的连续整数序列"的Java实现
- 和为s的连续正数序列(Java实现)
- 和为S的连续正数序列java实现
- 和为s的两个数字VS和为s的连续整数序列
- 面试题41:和为S的两个数字和为S的连续整数序列
- 和为sum的连续整数序列
- 和为S的连续正数序列 java
- 和为S的连续正数序列(java版)
- 剑指offer----和为S的连续正数序列----java实现
- 剑指offer面试题41_2 和为s的连续正数序列(java实现)
- 和为S的连续正数序列
- 和为S的连续正数序列
- 和为S的连续正数序列
- 和为s的连续正数序列
- 和为s的连续正数序列
- 和为s的连续正数序列
- Win10重装系统/Ubuntu双系统-----备忘
- Https单向认证与双向认证
- android 热点开发、WiFi热点通信
- C++ 整型和字符串相互转换
- 联合Tag-Label的推荐方法:A Joint Approach to Label Classification and Tag Tecommendation
- 和为S的连续整数序列 JAVA实现
- Resin介绍及配置
- 使用npm安装包
- ZennoPoster
- 如何利用Java库学习神经网络
- Android 环信的简单使用
- CoordinatorLayout和AppBarLayout(android MD 三)
- 入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- <机器学习>---决策树---补充