Leetcode 136 Single Number

Given an array of integers, every element appears twice except for one. Find that single one.

传统方法:使用Hash,扫描一遍如果Hash中没有这个元素则加入,否则从Hash中删除,最后Hash中留有一个单独的元素。这边使用object-property构成hash。

var singleNumber = function(nums) {

    var hash = {}

    for(var i=0;i<nums.length;i++)

        if (hash.hasOwnProperty(nums[i]))

            delete hash[nums[i]]

        else

            hash[nums[i]] = 1

    for(var x in hash)

        return Number(x) # property value is always string type

}

 高端方法:异或。

var singleNumber = function(nums) {

    var ans = 0

    for(var i=0;i<nums.length;i++)

        ans ^= nums[i]

    return ans

}

 

你可能感兴趣的:(LeetCode)