leetcode 260题

Posted by franki on February 9, 2021

leetcode 260题 只出现一次的数字 III

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

示例1:

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

思路

使用 map

代码

var singleNumber = function(nums) {
    const map = new Map();
    const len = nums.length;
    const res = [];

    nums.forEach((num) => {
        if (map.has(num)) {
            map.delete(num);
        } else {
            map.set(num, 1);
        }
    });
    map.forEach((val, key) => {
        res.push(key);
    });
    return res;
};

复杂度分析

  • 时间复杂度: O(N)
  • 空间复杂度: O(N)