package main

func singleNumberOld(nums []int) int {
	m := make(map[int]int, 0)
	for _, v := range nums {
		if m[v] != 0 {
			delete(m, v)
		} else {
			m[v] = 1
		}
	}
	for k := range m {
		return k
	}
	return -1 << 31
}

func singleNumber(nums []int) int {
	n := 0
	for _, v := range nums {
		n = n ^ v
	}
	return n
}

// func main() {
// 	fmt.Println(singleNumber([]int{1, 2, 3, 3, 2}))
// }