public boolean check(List<Integer> list){..........}补充代码,完成以下功能:
list中
1.连续5个数大于10
2.连续14个数交替(a>b,b<c….或a<b,b>c….)
3.连续8个数与平均值的距离(绝对值)大于10
都不满足返回true,满足1个或多个返回false

解决方案 »

  1.   

    小弟不才,抛砖引玉下,望高手指教
    public boolean check(List<Integer> list){
    boolean result = true;
    int avg = getAvg(list);
    System.out.println("average: "+avg);
    int flag1=0;
    int flag2=1;
    int flag3=0;
    Integer tmpnum=null;
    Integer prenum=list.get(0);
    if(prenum>10){
    flag1++;
    }
    if(Math.abs(prenum-avg)>10){
    flag3++;
    }
    boolean largezero = true;
    boolean lesszero = true;
    for(int i=1;i<list.size();i++){
    tmpnum=list.get(i);
    if((tmpnum-prenum)<0&&lesszero){
    flag2++;
    lesszero = false;
    largezero = true;
    }else if((tmpnum-prenum)>0&&largezero){
    flag2++;
    largezero = false;
    lesszero = true;
    }else{
    flag2 = 1;
    lesszero = true;
    largezero = true;
    }

    prenum = tmpnum;
    if(prenum>10){
    flag1++;
    }else{
    flag1=0;
    }
    if(Math.abs(prenum-avg)>10){
    flag3++;
    }else{
    flag3=0;
    }

    if(list.size()>4){
    if(flag1>=5){
    result = false;
    break;
    }
    if(flag2>=14){
    result = false;
    break;
    }
    if(flag3>=8){
    result = false;
    break;
    }
    }

    }
    return result;
    }public int getAvg(List<Integer> list){
    int average = 0;
    for(int k=0;k<list.size();k++){
    average+=list.get(k);
    }
    average=average/list.size();
    return average;
    }
      

  2.   


    public boolean hasFiveTenPlus(List<Integer> list){}
    public boolean hasSevenQuiver(List<Integer> list){}
    public boolean zhenFuHenDa(List<Integer> list){
    //-_|| 真的不会用英文说了
    }