欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode题解 => 260.只出现一次的数字III(七十五)

程序员文章站 2022-07-02 11:01:23
...

只出现一次的数字III

一、LeetCode题解

瞧一瞧~
做题路线( ** =当前阶段)
  • 阶段一(解题总数,单题题解数至上)**
  • 阶段二(解题质量至上)
  • 阶段三(算法思想至上)

二、算法题

题目

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。

示例 :

输入: [1,2,1,3,2,5]
输出: [3,5]

注意:

  • 结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。
  • 你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?

解法一(Map)

思路

  • 利用Map的思想,记录每个元素出现的次数
var singleNumber = function(nums) {
    var obj = {}
    var res = []
    nums.forEach(item => {
        if(obj[item]){
            delete obj[item]
        }else{
            obj[item] = 1
        }
    });
    for(let key in obj){
        res.push(key)
    }
    return res
};

LeetCode题解 => 260.只出现一次的数字III(七十五)

解法二