diff --git a/single-number-iii/sol.go b/single-number-iii/sol.go new file mode 100644 index 0000000..a7a338d --- /dev/null +++ b/single-number-iii/sol.go @@ -0,0 +1,18 @@ +package main + +func singleNumber(nums []int) []int { + xor := 0 + for i := range nums { + xor ^= nums[i] + } + xor &= -xor + out := []int{0, 0} + for i := range nums { + if nums[i]&xor == 0 { + out[0] ^= nums[i] + } else { + out[1] ^= nums[i] + } + } + return out +}