zoukankan      html  css  js  c++  java
  • 一组数字,从1到n,从中减少了3个数,顺序打乱,放在n-3的数组里,找出丢失数字

    曾经看到有这样一个JS题:
    有一组数字,从1到n,从中减少了3个数,顺序也被打乱,放在一个n-3的数组里
    请找出丢失的数字,最好能有程序,最好算法比较快
    假设n=10000

    下面我也来贴一个算法。

    function getArray (){ //创建随机丢失3个数字的数组,并打乱顺序。
        var arr =[]
        for(var i=1;i<=10000;i++){
            arr.push(i);
        }
        var a = arr.splice(Math.floor(Math.random()*arr.length),1);
        var b = arr.splice(Math.floor(Math.random()*arr.length),1);
        var c = arr.splice(Math.floor(Math.random()*arr.length),1);
        arr.sort(function(){
            return 0.5 - Math.random(); 
        });
        console.log('丢失数字为: ' + a + ',' + b + ',' + c + '
    数组元素个数: ' + arr.length);
        return arr;
    }
    function getMissMunber(arr){ //寻找丢失的数字。
        var mis = [],
            obj = {},
            len = 10000;
        for(var i=0; i<arr.length; i++){
            obj[arr[i]] = true;
        }
        for(var i=1; i<=len; i++){
            if(!obj[i]){
                mis.push(i);
            }
        }
        return mis;
    }
    var arr = getArray ();
    var mis = getMissMunber(arr);
    console.log('计算结果: ' + mis);
  • 相关阅读:
    Ubuntu下cc和gcc的关系
    Ubuntu下makefile的简单使用
    Ubuntu下配置Apache以及搭载CGI
    Easy C 编程 in Linux
    Ubuntu下配置GitHub
    Ubuntu学习之路2
    Ubuntu下配置Java环境
    Vim学习之路1
    将博客搬至CSDN
    ubuntu连接手机的方法
  • 原文地址:https://www.cnblogs.com/fengyuqing/p/javascript_arithmetic.html
Copyright © 2011-2022 走看看