暴力求解
注意到连续和最大的情况是sum/2+sum/2+1.且这是针对sum为奇数。
public static ArrayList<ArrayList<Integer>> FindContinuousSequence(int sum) {
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
ArrayList<Integer> tem = new ArrayList<>();
if (sum <= 1) {
return result;
}
for (int i = 1; i <= sum / 2+1; i++) {
int SUM = 0;
int k = i;
while (true) {
SUM += k;
tem.add(k);
k++;
if (SUM > sum) {
tem.clear();
break;
}
if (SUM == sum) {
result.add(new ArrayList<>(tem));
tem.clear();
break;
}
}
}
return result;
}


京公网安备 11010502036488号