数字和SUM

两数和

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

三数和

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

和为s的连续的正整数

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

import java.util.ArrayList;
public class Solution {
    ArrayList > list = new ArrayList>();
    
    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 l = new ArrayList();
                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 > FindContinuousSequence(int sum) {
       if(sum==1||sum==2) return list;
       numberSeqSum(sum);
       return list;
    }
}

你可能感兴趣的:(数字和SUM)