給定一個(gè)非空整數(shù)數(shù)組,除了某個(gè)元素只出現(xiàn)一次以外,其余每個(gè)元素均出現(xiàn)兩次。找出那個(gè)只出現(xiàn)了一次的元素。
示例1:
輸入:[1,2,2,3,3]
輸出:1
解題思路:
先把數(shù)組按照從大到小排序,
然后先考慮第一個(gè)和最后一位數(shù)字的情況,
如果第一位和第二位不等 則返回第一位;
若最后一位與倒數(shù)第二位不相等 則返回最后一次;
然后比較當(dāng)前相鄰左右數(shù)字,如果兩邊都不相等 則返回當(dāng)前數(shù)字
代碼如下:
function singleNumber(nums){
nums = nums.sort((a,b)=>a-b);
if(nums[0] !==nums[1]){
return nums[0];
}
if(nums[nums.length-1] !==nums[length-2]){
return nums[length-1]
}
for(let i =1;i<nums.length;i++){
if(nums[i] !== nums[i-1] && nums[i] !== nums[i+1]){
return nums[i]
}
}
}