题目
[js] 第1天 用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值 · Issue #3 · haizlin/fe-interview
用递归算法实现数组长度为 5 且元素的随机数在 2-32 间不重复的值
实现
思路:
- 生成一个随机数,检查是否在数组中
- 若不存在,加入数组并递归
- 若已存在,直接递归 注意:递归实现需要在函数运行时动态修改入参,并且返回一个递归调用
复杂度分析
- 时间复杂度:,平均
- 空间复杂度:
var generateUniqueRandomArr = function (leng, min, max, curArr = []) {
if (curArr.length === length) return curArr
let randomNum = Math.floor(Math.random() * (max - min + 1)) + min
if (!curArr.includes(randomNum))
return generateUniqueRandomArr(leng, min, max, […curArr, randomNum])
else
return generateUniqueRandomArr(leng, min, max, curArr)
}
let res = generateUniqueRandomArr(5, 2, 32)