原題鏈接:
https://leetcode.cn/problems/single-number/
解題思路:
- 遍歷
nums,使用Set保存第一次遇到的數(shù)字。 - 如果第二次遇到相同數(shù)字,將其從
Set中刪除。 - 最終
Set中只會留下一個數(shù)字,即為只出現(xiàn)了一次的數(shù)字。
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function (nums) {
let set = new Set() // 使用哈希表保存遍歷時遇到的數(shù)字
for (const num of nums) {
// 如果遇到出現(xiàn)過的數(shù)字,將其從Set中刪除
if (set.has(num)) {
set.delete(num)
} else {
// 第一次遇到的數(shù)字,將其加入Set
set.add(num)
}
}
// 最終Set中只剩下一個只出現(xiàn)過一次的元素
return [...set][0]
}