JS 剑指Offer(一) 数组中的重复数字

时间:2023-03-09 21:53:45
JS 剑指Offer(一) 数组中的重复数字

题目:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,
但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

分析:找出重复的元素即可,把已经出现的元素push进res里面保存

            var res = []
var findRepeatNumber = function(nums){
const map = {};
for(let i=0;i<nums.length;i++){
let num = nums[i]
if(!map[num]){
//如果某个元素没有在map中出现过 则给这个值在map中设置为true
map[num] = true
}else{
//对于已经出现过的数字,直接返回
res.push(num)
}
}
return res
console.log(res)
}

思路:遍历哈希表

哈希表 结构是number-boolean boolean代表数字是否出现过  hash的结构

如果一个元素出现过两次以上,则入栈,打印所有的重复元素