Given an array of numbers nums
, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.
For example:
Given nums = [1, 2, 1, 3, 2, 5]
, return [3, 5]
.
Note:
- The order of the result is not important. So in the above example,
[5, 3]
is also correct. - Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
给定一个数字数组,其中只有两个元素只出现一次,而其他所有元素都出现两次。找到只出现一次的两个元素。
/**
* @param {number[]} nums
* @return {number[]}
*/
var singleNumber = function(nums) {
let m = {}
for (var i in nums) {
let num = nums[i];
if (m[num]) {
m[num]++;
} else {
m[num] = 1;
}
}
let res = [];
for (var i in m) {
if (res.length == 2) {
break;
}
let num = m[i]
if (num == 1) {
res.push(parseInt(i));
}
}
return res
};