Description
Given a non-empty array of integers, every element appears three times except for one, which appears exactly once. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Example 1:
1 | Input: [2,2,3,2] |
Example 2:
1 | Input: [0,1,0,1,0,1,99] |
解法
又是一个巧妙的位运算的题,对于每个数的二进制的每一位上的数相加,因为所有的数都出现了3次,除了1个数,那么如果这一位上的数的和不能被3整除,则那个只出现过一次的数的这一位一定是1,否则那一位是0。
具体代码如下:
1 | class Solution { |