41和为S的连续正数序列

题目描述

小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!

输出描述:

输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序

类似于上一题的夹逼

 1 import java.util.ArrayList;
 2 public class Solution {
 3     public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
 4         ArrayList<ArrayList<Integer>>  res  =  new ArrayList<ArrayList<Integer>>();
 5         int small = 1,big =2;
 6         while(small!=(1+sum/2)){
 7            int  my_sum = sumlist(small,big);
 8             if(my_sum==sum){
 9                 ArrayList<Integer> temp = new ArrayList<Integer>();
10                 for(int i = small;i<=big;i++)
11                     temp.add(i);
12                 res.add(temp);
13                 small = small+1;
14                 big = small+1;
15             }
16             else if(my_sum>sum) small++;
17             else big++;
18         }
19         return res;
20     }
21     private int sumlist(int small,int big){
22          return (big+small)*(big-small+1)/2;
23     }
24 }

原文地址:https://www.cnblogs.com/zle1992/p/8183320.html

时间: 2024-11-09 12:44:24

41和为S的连续正数序列的相关文章

[剑指Offer]41 和为S的两个数字 VS 和为S的连续正数序列

[剑指Offer]41 和为S的两个数字 VS 和为S的连续正数序列 Leetcode T1 Two Sum Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the s

41、和为S的连续正数序列

一.题目 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22.现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 二.解法 1 import java.util.ArrayList; 2 public class Solution { 3 public Ar

剑指Offer面试题41(Java版):和为s的两个数字VS和为s的连续正数序列

题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多个数字的和等于s,输出任意一对即可. 例如输入数组{1,2,4,7,11,15}和数字15.由于4+11=15,因此输出4和11. 在面试的时候,很重要的一点是应聘者要表现出很快的反应能力.只要想到一个办法,应聘者就可以立马告诉面试官,即使这个办法不一定是最好的.比如这个问题,很多人会立即能想到O(n2)的方法,也就是先在数组中固定一个数字,再依次判断数组中其余n-1个数字与它的和是不是等于s.面试官会

牛客(41)和为S的连续正数序列

// 题目描述 // 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100. // 但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数). // 没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22.现在把问题交给你, // 你能不能也很快的找出所有和为S的连续正数序列? Good Luck! // 输出描述: // 输出所有和为S的连续正数序列.序列内按照从小至大的顺序,序列间按照开始数字从小到大的

和为S的两个数字VS和为S的连续正数序列

题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. 思路:最初我们找到数组的第一个数字和最后一个数字.首先定义两个指针,第一个指针指向数组的第一个(也就是最小的)数字,第二个指针指向数组的最后一个(也就是最大的)数字.当两个数字的和大于输入的数字时,把较大的数字往前移动:当两个数字的和小于数字时,把较小的数字往后移动:当相等时,打完收工.这样扫描的顺序是从数组的两端向数组的中间扫描. #include "stdafx.

九度 和为S的连续正数序列

题目1354:和为S的连续正数序列 时间限制:2 秒 内存限制:32 兆 特殊判题:否 提交:2008 解决:622 题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22.现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输入: 输入有多组数据.

剑指Offer40 和为s的连续正数序列

1 /************************************************************************* 2 > File Name: 40_ContinuesSequenceWithSum.c 3 > Author: Juntaran 4 > Mail: [email protected] 5 > Created Time: 2016年09月04日 星期日 15时52分42秒 6 **************************

剑指offer系列46---和为s的连续正数序列

[题目]输出所有和为S的连续正数序列.序列为:1,2,3,4,5,6,7,8................ * 序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 1 package com.exe9.offer; 2 3 /** 4 * [题目]输出所有和为S的连续正数序列.序列为:1,2,3,4,5,6,7,8................ 5 * 序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 6 * @author WGS 7 * 8 */ 9 import ja

剑指offer-和为S的连续正数序列

题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22.现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和为S的连续正数序列.序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 题解: 使用map,记录sum值,从小到大