输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序

来源:互联网 发布:淘宝副总裁 编辑:程序博客网 时间:2024/04/30 15:38
import java.util.ArrayList;
public class Solution {
    public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum){
        ArrayList<ArrayList<Integer> > list=new ArrayList<ArrayList<Integer> >();
        if(sum < 3){
            return list;
        }
        int first=1;//设置第一个数字
        int second=2;//设置最后一个数字
        while(first < (sum+1) /2){
            ArrayList<Integer> list_sequence = new ArrayList<Integer>();
            int count=0;
            for(int i=first;i<=second;i++){
                count+=i;
            }
            if(count == sum){
              //序列满足条件
              for(int i=first;i<=second;i++){
                list_sequence.add(i);
             } 
                first++;
            }else if(count > sum){
                first++;
            }else{
                second++;
            }
            if(list_sequence.size() > 0){
                list.add(list_sequence);
            }
            
        }
        return list;
    }
}
阅读全文
0 0
原创粉丝点击