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

只出现一次的数字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
};

在这里插入图片描述

解法二

发布了263 篇原创文章 · 获赞 40 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/jbj6568839z/article/details/104061773