题意
给一串数组,输出所有重复的元素的数组。要求不要使用extra空间,时间复杂度控制在O(n)内。
思路
ES6新出的Set!
虽然es6的set的除重只能除atom元素的,但是这里的用例刚好够用!
代码
/**
* @param {number[]} nums
* @return {number[]}
*/
var findDuplicates = function(nums) {
let set = new Set();
let res = [];
for(let i = 0; i < nums.length; ++i){
if(set.has(nums[i])){
res.push(nums[i]);
}
else{
set.add(nums[i]);
}
}
return res;
};
复制代码