美文网首页
LeetCode题解:剑指 Offer 56 - I. 数组中数

LeetCode题解:剑指 Offer 56 - I. 数组中数

作者: Lee_Chen | 来源:发表于2023-08-01 15:49 被阅读0次

    原题链接:
    https://leetcode.cn/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/

    解题思路:

    1. 遍历nums,使用Set保存第一次遇到的数字。
    2. 如果第二次遇到相同数字,将其从Set中删除。
    3. 最终Set中只会留下2个数字,即为只出现了一次的数字。
    /**
     * @param {number[]} nums
     * @return {number}
     */
    var singleNumber = function (nums) {
      let set = new Set() // 使用哈希表保存遍历时遇到的数字
    
      for (const num of nums) {
        // 如果遇到出现过的数字,将其从Set中删除
        if (set.has(num)) {
          set.delete(num)
        } else {
          // 第一次遇到的数字,将其加入Set
          set.add(num)
        }
      }
    
      // 最终Set中只剩下2个只出现过一次的元素
      return [...set]
    }
    

    相关文章

      网友评论

          本文标题:LeetCode题解:剑指 Offer 56 - I. 数组中数

          本文链接:https://www.haomeiwen.com/subject/totupdtx.html