136 Single Number

Given a non-empty array of integers, every element appears twice except for one. Find that single one.

Note:

Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

Example 1:

Input: [2,2,1]
Output: 1

Example 2:

Input: [4,1,2,1,2]
Output: 4
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
func singleNumber(nums []int) int {
    set := make(map[int]bool)
    for _, num := range nums {
        if _, ok := set[num]; ok {
            delete(set, num)
        } else {
            set[num] = true
        }
    }
    for num, _ := range set {
        return num
    }
    return -1
}