【剑指 Offer 题解】57.2 和为 S 的连续正数序列

题目

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

示例

Input:
100

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

思路

public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
    ArrayList<ArrayList<Integer>> result = new ArrayList<>();
    for (int i = 1,j = 2,curSum = i + j; i < j && j < sum;) {
        if (curSum < sum) {
            j++;
            curSum += j;
        } else if (curSum > sum) {
            curSum -=i;
            i++;
        } else {
            ArrayList<Integer> list = new ArrayList<>();
            for (int k = i; k <= j; k++) {
                list.add(k);
            }
            result.add(list);
            j++;
            curSum += j;
            curSum -=i;
            i++;
        }
    }
    return result;
}
发布了18 篇原创文章 · 获赞 0 · 访问量 502

猜你喜欢

转载自blog.csdn.net/qingqingxiangyang/article/details/104416929