22 lines
362 B
Go
22 lines
362 B
Go
package q137
|
|
|
|
func singleNumber(nums []int) int {
|
|
bitCounts := make([]uint8, 32)
|
|
for _, num := range nums {
|
|
num32 := int32(num)
|
|
for i := range 32 {
|
|
if num32|1<<i == num32 {
|
|
bitCounts[i] = (bitCounts[i] + 1) % 3
|
|
}
|
|
}
|
|
}
|
|
var ret int32
|
|
for i := range 32 {
|
|
if bitCounts[i] != 0 {
|
|
ret |= 1 << i
|
|
}
|
|
}
|
|
return int(ret)
|
|
}
|
|
|
|
var _ = singleNumber
|