137. 只出现一次的数字 II

58 阅读1分钟

137. 只出现一次的数字 II - 力扣(LeetCode)

func singleNumber(nums []int) int {
	if len(nums) == 0 {
		return 0
	}
	res := int32(0)
	for i := 0; i < 32; i++ {
		count := int32(0)
		for _, num := range nums {
			count += int32(num) >> i & 1
		}
		tmp := count % 3
		res |= tmp << i

	}
	return int(res)
}

思路

按照32位统计每一位1的出现次数,最后%3。判断这一位在最终结果是否为1。