leetcode_137_Single_Number_II

https://leetcode.com/problems/single-number-ii/

题目大意为:给一个数组,数组中除了一个数字出现一次外,其他数字均出现
三次,找出这个出现一次的数字。

思路:从网上看的题解,利用位运算,记录整数的二进制表示中每一位1出现的次数。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ones = 0, twos = 0;
for(int i = 0; i < nums.size(); i++){
ones = (nums[i] ^ ones) & ~twos;
twos = (nums[i] ^ twos) & ~ones;
}

return ones;
}
};

0%