题目地址
https://leetcode.cn/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof/
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
示例 1:
输入:nums = [3,4,3,3]
输出:4
示例 2:
输入:nums = [9,1,7,9,7,9,7]
输出:1
解法
位运算解法,网上很多都是直接贴代码或者三两句解释,根本不能理解原理。楼主尝试详细解释下,希望小白也能看懂。
有A.B.C三个数,他们的二进制如下
除了一个数字出现一次,其他数字都出现3次,假如B出现一次。
我们统计每一位出现1的次数,因为都是出现3次的所以每一位1出现的次数对3取模肯定是0,我们在考虑上出现一次的数,那对3取模的余数就是这个数了。
至于如何统计每一位1的个数以及二进制转10进制,看题解代码就可以了,这边就不贴了。