剑指offer原算法Java实现

import java.util.ArrayList;
public class Solution {
    public ArrayList<ArrayList<Integer>> FindContinuousSequence(int sum) {
        ArrayList<ArrayList<Integer>> resultTotal=new ArrayList<ArrayList<Integer>>();
        //边界条件
        if(sum<3){
            return resultTotal;
        }else{
            int small=1;
            int big=2;
            int curSum=big+small;
            while(small<(1+sum)/2){
                if(curSum==sum){
               //为了防止覆盖,每次都需要重新new
                ArrayList<Integer> result=new ArrayList<Integer>();
                for(int i=small;i<=big;i++){
                    result.add(i);
                }
                    resultTotal.add(result);
            }
                while(curSum>sum&&small<(1+sum)/2){
                    curSum-=small;
                    small++;
                         if(curSum==sum){
               //为了防止覆盖,每次都需要重新new
                ArrayList<Integer> result=new ArrayList<Integer>();
                for(int i=small;i<=big;i++){
                    result.add(i);
                }
                    resultTotal.add(result);
            }
                }
                big++;
                curSum+=big;
            }
        }
        return resultTotal;
    }
}