tailgo / poorguy-fly

1 stars 0 forks source link

136.只出现一次的数字 - https://leetcode-cn.com/problems/single-number/submissions/ #6

Open tailgo opened 5 years ago

tailgo commented 5 years ago
/**
 * @param {number[]} nums
 * @return {number}
 */
// 指标 80ms | 35.1MB
var singleNumber = function(nums) {
    var r = nums[0];
    for (var i = 1; i < nums.length; ++i) {
        r = nums[i] ^ r;
    }
    return r;
};

两个相同的数,异或后为0,0与任何数异或为原数。

AmelloAster commented 5 years ago
/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function(nums) {
    let numObj = {}
    for (let i of nums) {
        numObj[i] = numObj[i] ? numObj[i]+=1 : 1;
    }
    let result = 0;
    Object.keys(numObj).map(key => {
        if (numObj[key] === 1) {
            result = key
            return
        }
    })
    return result

};