题解 | #无重复数组#

无重复数组

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
        }

全部评论

相关推荐

自来熟的放鸽子能手面试中:北京交通大学在这想都不敢想是吧
点赞 评论 收藏
分享
GGrain:没事,本硕985也不发面试笔试😖
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务