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; }

作者与出处
原作者: CyC2018
来源:CyC2018
许可证:CC BY-NC-SA 4.0
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: CyC2018 转发
评论区 (0)
U