zoukankan      html  css  js  c++  java
  • 和为S的连续正整数序列

    package wangChaoPA实习工作练习.com.剑指offer;
    import java.util.ArrayList;
    /*
     * 解题思路:因为是连续的,所以利用大小数进行解答 如果从little到big的和等于sum
     * 保存little到big值到list中然后,little++,big++ 如果从little到big的和小于sum big++
     * 如果从little到big的大等sum little++
     */
    public class 和为S的连续正整数序列
    {
        public ArrayList<ArrayList<Integer>> FindContinuousSequence(int sum)
        {
            ArrayList<ArrayList<Integer>> resList = new ArrayList<ArrayList<Integer>>();
            if (sum < 3)
            {
                return resList;
            }
            int little = 1;
            int big = 2;
            // little最大只能为sum的一半
            while (little <= sum / 2)
            {
                int tempSum = sumOflittleToBig(little, big);
                if (tempSum == sum)
                {
                    ArrayList<Integer> list = new ArrayList<Integer>();
                    for (int i = little; i <= big; i++)
                    {
                        list.add(i);
                    }
                    resList.add(list);
                    little++;
                    big++;
                }
                else if (tempSum < sum)
                {
                    big++;
                }
                else
                {
                    little++;
                }
            }
            return resList;
        }

        private int sumOflittleToBig(int little, int big)
        {
            int sum = 0;
            for (int i = little; i <= big; i++)
            {
                sum += i;
            }
            return sum;
        }
    }

  • 相关阅读:
    如何将你的AIR程序正常显示在iPhone5上?
    升级Flash Builder 4.7中的AIR SDK
    Flex AIR加载时全屏显示
    在Mac系统的安装Flash Builder 4.7开发工具
    What's XPath?
    XPath节点
    What's XML?
    65个源码下载网站
    [导入]轻松掌握Ajax.net系列教程
    MemberShip 示例
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/7203476.html
Copyright © 2011-2022 走看看