题解 | #和为S的连续正数序列#

和为S的连续正数序列

http://www.nowcoder.com/practice/c451a3fd84b64cb19485dad758a55ebe

import java.util.ArrayList;
public class Solution {
    public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
        ArrayList <ArrayList<Integer> > resList = new ArrayList <ArrayList<Integer> >();
        //题目很简单,就是需要扣边界条件,sum=1时易错
        if(sum <= 1){
            return resList;
        }

        for(int i = 1; i < sum / 2 + 1; i++){
            int count = 0;
            ArrayList<Integer> tmpList = new ArrayList<Integer>();
            lable: for(int j = i; j <= sum / 2 + 2; j++){
                count += j;
                tmpList.add(j);
                if(count == sum){
                    resList.add(tmpList);
                    break lable;
                }
                if(count > sum){
                    break lable;
                }
            }
        }
        return resList;
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务