题解 | #和为S的连续正数序列#
和为S的连续正数序列
https://www.nowcoder.com/practice/c451a3fd84b64cb19485dad758a55ebe
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param sum int整型 * @return int整型ArrayList<ArrayList<>> */ public ArrayList<ArrayList<Integer>> FindContinuousSequence (int sum) { // 这是一个等差数列求和 a1从1开始 公差d=1 // an = a1 + (n-1)*d // sn = n(a1+an)/2 ArrayList<ArrayList<Integer>> res = new ArrayList<>(sum); for (int i = 1; i < sum; i++) { for (int j = 2; j < sum; j++) { // sn = n(a1+an)/2 if (sum == j * (i + i + (j - 1)) / 2) { // 从i开始,有j个,放入集合中 ArrayList<Integer> js = new ArrayList<>(j); for(int k=0;k<j;k++){ js.add(i+k); } res.add(js); } } } return res; } }