代码改变世界

一天一小段js代码(no.1)

2014-03-25 20:00  大额_skylar  阅读(343)  评论(0编辑  收藏  举报

   10000个数字中缺少三个数,编程找出缺少的三个数字。

   算法实现:

/*生成10000个数中随机抽掉三个数后的数组*/

function supplyRandomArray(){
    /*生成含有10000个数字的数组*/
    var arr = [],n=10000;
    for(var i=0;i<10000;i++){
        arr.push(i+1);
    }
    /*使用数组对象的splice()方法随机删除三项*/
    var num1 = arr.splice(Math.floor(Math.random()*arr.length),1);
    var num2 = arr.splice(Math.floor(Math.random()*arr.length),1);
    var num3 = arr.splice(Math.floor(Math.random()*arr.length),1);
    document.write('随机抽掉的三个数是:'+num1+'和'+num2+'和'+num3+'<br/><br/>');
    arr.sort(function(){
        return Math.random()>0.6;
    });
    return arr;
}
/*生成结束*/

/*查找10000个数中丢失的数字*/

function getMissElem(arr){
    var result = [],            /*用于存放找到的丢失的数组元素的数组*/
        obj = {},               /*对象字面量*/
        len = arr.length;
    for(var i=0;i<len;i++){
        obj[arr[i]]=true;
    }
    for(var i=1;i<10000;i++){
        if(!obj[i]){
            result.push(i);
        }
    }

    return result;
}
/*查找结束*/

var arr = supplyRandomArray();
var missElem = getMissElem(arr);
document.write("丢失的数字为:"+missElem);

 

 

 标记:我的代码是从网上学来的,如果恰巧是你的代码,如果你在意的话,请联系我。