美文网首页
数字和SUM

数字和SUM

作者: 稀饭粥95 | 来源:发表于2018-09-03 14:56 被阅读8次

    两数和

    题意是给出一个数组,输出和为k的两个数。数组为无序的

    三数和

    从给定的数组中找三个数,让它们的和为某个值。

    和为s的连续的正整数

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

    import java.util.ArrayList;
    public class Solution {
        ArrayList<ArrayList<Integer> > list = new ArrayList<ArrayList<Integer>>();
        
        public void numberSeqSum(int sum){
            if(sum==0) System.out.println("no");
            int small = 1;
            int big = 2;
            int mid = (sum+1)/2;//至少两个数
            int total = small+big;
            while(small<mid&&small<big){
                if(total==sum){
                    ArrayList<Integer> l = new ArrayList<Integer>();
                    for(int i=small;i<=big;i++){
                        l.add(i);
                    }
                    list.add(l);
                    //System.out.println(small+" "+big);
                    big++;
                    total = total+big;
                }else if(total < sum){
                    big++;
                    total = total + big;
                }else{
                    total = total - small;
                    small++;
                }
            }
            
        }
        public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
           if(sum==1||sum==2) return list;
           numberSeqSum(sum);
           return list;
        }
    }
    

    相关文章

      网友评论

          本文标题:数字和SUM

          本文链接:https://www.haomeiwen.com/subject/whhbwftx.html