用每个数去除以10,整数相等的是一组,余数最大最小的就是这个段的两个头。

解决方案 »

  1.   

    <script>
    var arr=[101,100,67,44,69,45,68,43,102];function paixu(n1,n2){
        return n1-n2;
    }
    window.onload=function(){
        arr.sort(paixu);//排序成[43,44,45,67,68,69,100,101,102];
        var point=0;
        var tmp=arr[0];
        var result=new Array();//存储计算结果
        for(var i=1;i<arr.length;i++){
            if(tmp==arr[i]-1){
                tmp++;
            }else{
                result[result.length]=CreateResultArray(point,i)
                point=i;
            }
        }
        //最后再增加一个结果
        result[result.length]=CreateResultArray(point,i)
        //得到的最终结果应该是result=[[43,44,45],[67,68,69],[100,101,102]];
        //输出结果
        alert(result);
    }
    function CreateResultArray(start,end){
        var tmparr=new Array();
        for(var i=start;i<end;i++){
            tmparr[tmparr.length]=arr[i];
        }
        return tmparr;
    }
    </script>