题解 | #无重复数组#

无重复数组

https://www.nowcoder.com/practice/d2fa3632268b41df9bc417b74802ad8c

const _getUniqueNums = (start, end, n) => {
            //run是一个用于递归的函数,闭包引用_getUniqueNums作用域的数组result,这个数组result是最终需要返回的结果
            function run(arr,start,end,n){
                for(let i=0;i<n-arr.length;i++){
                    //确定数组元素范围start<=num<=end
                    let num=Math.floor(Math.random()*(end-start))+start+1 
                    //数组中存在一样的数字,不操作;不存在一样的数字,存入数字
                    arr.find(item=>item==num)?arr:arr.push(num)           
                }
                //当数组长度不是n时,进行递归,所有的参数都是闭包引用的,所以n就是最外层作用域的n
                if(n>arr.length) run(arr,start,end,n)
                return arr   
            }
            let result=new Array()
            run(result,start,end,n)
            return result
        }

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务