57.2 和为 S 的连续正数序列

优质
小牛编辑
178浏览
2023-12-01

NowCoder

题目描述

输出所有和为 S 的连续正数序列。

例如和为 100 的连续序列有:

// 
[9, 10, 11, 12, 13, 14, 15, 16]
[18, 19, 20, 21, 22]。

解题思路

// java
public ArrayList<arraylist> FindContinuousSequence(int sum) {
    ArrayList<arraylist> ret = new ArrayList<>();
    int start = 1, end = 2;
    int curSum = 3;
    while (end < sum) {
        if (curSum > sum) {
            curSum -= start;
            start++;
        } else if (curSum < sum) {
            end++;
            curSum += end;
        } else {
            ArrayList list = new ArrayList<>();
            for (int i = start; i <= end;="" i++)="" list.add(i);="" ret.add(list);="" cursum="" -="start;" start++;="" end++;="" +="end;" }="" return="" ret;="" 







</arraylist</arraylist