LeetCode上找到所有数组中消失的数字,简单难度,记录下解题思路
要找到数组长度n对应的[1,n]数组和传入数组相比,返回没有出现的数组成的数组
这里只需要使用Map来建立一个表,然后查找对应元素是否出现即可
var findDisappearedNumbers = function(nums) {
let len = nums.length
if(!len) return []
// 生成一个map记录nums中出现的元素
let map = new Map()
// 遍历nums生成对应的表
nums.forEach((num) => {
if(!map.has(num)) {
map.set(num,1)
} else {
map.set(num,map.get(num)+1)
}
})
// 对比[1,n]中哪些数没有出现到map中
let res = []
for(let i = 1;i<len+1;i++) {
if(!map.has(i)) {
res.push(i)
}
}
return res
};