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

原创 2018年04月15日 14:19:46

题目描述

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

思路:

/*
*初始化small=1,big=2;
*small到big序列和小于sum,big++;大于sum,small++;
*当small增加到(1+sum)/2是停止
*/

# -*- coding:utf-8 -*-
class Solution:
    def FindContinuousSequence(self, tsum):
        # write code here
        small = 1
        big = 2
        sums = small+big
        res = []
        while small <= (tsum+1)//2:
            if sums < tsum:
                big += 1
                sums += big
            elif sums > tsum:
                sums -= small
                small += 1
            else:
                res.append(list(range(small, big+1)))
                big += 1
                sums += big
        return res

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38111819/article/details/79948994

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

输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15;所以打印出三个连续序列1~5,4~6,7~8; 思路: 从递增数组...
  • snow_7
  • snow_7
  • 2016年08月15日 12:48
  • 1088

剑指offer面试题之和为S的连续正数序列

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

《剑指offer》——和为s的连续整数序列

题目:输入一个正整数s,打印出所有和为s的连续正数序列(至少含有两个数)。可以考虑用两个数small和big分别表示序列的最小值和最大值。首先把small初始化为1,big初始化为2。如果从small...
  • zengzhen_CSDN
  • zengzhen_CSDN
  • 2016年02月24日 10:28
  • 539

剑指Offer(57)和为S的两个数字

题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两...
  • Haiqiang1995
  • Haiqiang1995
  • 2018年02月22日 22:46
  • 20

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

题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多个数字的和等于s,输出任意一对即可。 例如输入数组{1,2,4,7,11,15}和数字15.由于4+11...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月10日 19:47
  • 1547

剑指Offer面试题41:求和为s的两个数字;求和为s的连续正数序列 Java实现

题目一:输入一个递增排序的数组和一个数字s,在数组中找两个数,使得他们的和刚好是s.如果有多对数字的和等于s,则输出任意一对即可。例如,输入数组{1,2,4,7,11,15}和数字15,则输出4和11...
  • gg543012991
  • gg543012991
  • 2016年09月25日 16:40
  • 707

面试题40:输出和为指定值的连续正数序列

思路: 1. 用两个变量分别表示序列的最小值和最大值。首先把他们分别初始化为1和2, 2. 如果从最小值到最大值的序列之和大于给定值,则从序列中去掉最小值,也就是增大最小值; 3. 如果从最小值...
  • htyurencaotang
  • htyurencaotang
  • 2013年09月05日 11:23
  • 1390

和为s的连续正序列

题目:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5,4~6,7~8。 解...
  • yang20141109
  • yang20141109
  • 2016年03月18日 16:31
  • 199

2sum,3sum and 和为s的连续正数序列

2sum,3 sum,和为s的连续正数序列
  • liuxiaqianying
  • liuxiaqianying
  • 2016年07月19日 17:08
  • 93

网易面试题 输入一个正数n,输出所有和为n连续正数序列

输入一个正数n,输出所有和为n连续正数序列
  • susidian
  • susidian
  • 2015年08月17日 16:41
  • 661
收藏助手
不良信息举报
您举报文章:【剑指offer】和为S的连续正数序列
举报原因:
原因补充:

(最多只允许输入30个字)