57.2 和为 S 的连续正数序列


文档摘要

57.2 和为 S 的连续正数序列 题目描述 牛客网 题目描述 输出所有和为 S 的连续正数序列。例如和为 100 的连续序列有: 解题思路

57.2 和为 S 的连续正数序列

题目描述

牛客网

题目描述

输出所有和为 S 的连续正数序列。例如和为 100 的连续序列有:

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

解题思路

public ArrayList<ArrayList<Integer>> FindContinuousSequence(int sum) { ArrayList<ArrayList<Integer>> 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<Integer> list = new ArrayList<>(); for (int i = start; i <= end; i++) list.add(i); ret.add(list); curSum -= start; start++; end++; curSum += end; } } return ret; }

发布者: 作者: 转发
评论区 (0)
U