成立分两种情况:
1. 序列长度为奇数m时,序列的平均数为整数,那么sum%m=0,并且序列第一个数为正数。
2. 序列长度为奇数n时,序列的平均数为小数,并且小数部分是0.5,那么2*sum%m=0,并且序列第一个数为正数。
连续正数序列的平均数就是中位数。
import java.util.ArrayList;
public class Solution {
public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
ArrayList<ArrayList<Integer>>listmother=new ArrayList<ArrayList<Integer>>();
for(int n=sum-1;n>=2;n--){
if(sum*2%n==0){
int i=(sum/n)-(n-1)/2;
if(i>0)
{
int flag=0;
if(sum%n==0){
if(n%2==1)///奇数个
flag=1;
}
else{
if(n%2==0)///偶数个
flag=1;
}
if(flag==1){
ArrayList<Integer>list=new ArrayList<Integer>();
int j=0;
while(j<n){
list.add(i+j);
j++;
}
listmother.add(list);
}
}
}
}
return listmother;
}
}