-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
132ms hashMap
var singleNumber = function(nums) {
var hashT={},
arr=[];
for(var i=0;i<nums.length;i++){
if(hashT[nums[i]]===undefined)hashT[nums[i]]=1;
else hashT[nums[i]]++;
}
for(var j in hashT){
if(hashT[j]==1)arr.push(parseInt(j));
}
return arr
};
99ms hashMap_改
var singleNumber = function(nums) {
var hashT={}, arr=[];
for(var i=0;i<nums.length;i++){
//diff
if(!hashT[nums[i]])hashT[nums[i]]=true;
else delete hashT[nums[i]];
}
for(var j in hashT){
arr.push(+j);
}
return arr
};
136ms
var singleNumber = function(nums) {
var arr=[],count=0;
nums.sort(function(a,b){return a-b})
for(var i=0;i<nums.length;){
if(nums[i]==nums[i+1])i+=2;
else {
arr.push(nums[i]);
count++;
i++;
}
if(count==2)return arr;
}
};
166ms
var singleNumber = function(nums) {
var arr=[];
for(var i=0;i<nums.length;i++){
var index = arr.indexOf(nums[i]);
if(index == -1)arr.push(nums[i]);
else arr.splice(index,1);
}
return arr
};
//Bit manipulation
var singleNumber = function(nums) {
var arr=[],count=0;
nums.sort(function(a,b){return a-b});
for(var i=0;i<nums.length;){
if((nums[i] ^ nums[i+1]) === 0 && nums[i+1] !== undefined)i+=2;
else {
arr.push(nums[i]);
count++;
i++;
}
if(count==2)return arr;
}
};
var singleNumber = function(nums) {
var xor = 0,
len = nums.length,
lastDigit,
x = 0,
y = 0,
result = [],
i;
for (i = 0; i < len; i++) {
xor ^= nums[i];
}
lastDigit = xor - (xor & (xor - 1));
for (i = 0; i < len; i++) {
if ((nums[i] & lastDigit) === 0) {
x ^= nums[i];
} else {
y ^= nums[i];
}
}
result.push(x);
result.push(y);
return result;
};Metadata
Metadata
Assignees
Labels
No labels