跳到主要内容

LCR178.训练计划VI

链接:LCR178.训练计划VI
难度:Medium
标签:位运算、数组
简介:在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。

题解 1 - cpp

  • 编辑时间:2021-12-24
  • 执行用时:40ms
  • 内存消耗:15.8MB
  • 编程语言:cpp
  • 解法介绍:用数组存储每个位有几个 1。
class Solution {
public:
int singleNumber(vector<int>& nums) {
int list[40] = {0};
for (auto& num : nums) {
for (int i = 0; i < 32; i++) {
if (num & (1 << i)) list[i]++;
}
}
int ans = 0;
for (int i = 0; i < 32; i++) {
if (list[i] % 3) {
ans |= 1 << i;
}
}
return ans;
}
};