思路一:
遍历数组,用一个 map 记录每个字符的出现次数,返回 map 中出现次数为 1 的元素值
func singleNumber(nums []int) int {
//err 不初始化会报错
//var myMap map[int]int
myMap := make(map[int]int)
//var result int
for _, item := range nums {
_, ok := myMap[item]
if ok {
myMap[item]++
} else {
myMap[item] = 1
//err 这样结果错误,有可能最后加入的是重复的元素!
//result = item
}
}
//找到map中值为1的元素
for key,val:=range myMap{
if val==1{
return key
}
}
return -1
}
思路二:异或运算
给这整个数组来个大的异或运算即可
func singleNumber(nums []int) int {
result := 0
for _, item := range nums {
result ^= item
}
return result
}