add: 220215 [previous is not CN] improved

This commit is contained in:
Lam Haoyin 2022-02-15 12:08:02 +08:00
parent 152272dcb1
commit 61f66c394f
No known key found for this signature in database
GPG Key ID: 8C089CB1A2B7544F
1 changed files with 28 additions and 1 deletions

View File

@ -1,4 +1,5 @@
#include <vector>
#include <cassert>
#include <iostream>
#include <unordered_set>
@ -9,6 +10,32 @@
*/
class Solution {
public:
static int singleNumber(const std::vector<int>& nums) {
int x = 0;
for (int i : nums)
x = x xor i;
return x;
}
};
class SolutionOld {
private:
inline static const int maxN = 30000 + 3;
public:
static int singleNumber(const std::vector<int>& nums) {
int cnt[maxN << 1]{};
for (int i : nums)
++cnt[i + maxN];
for (int i = 0; i < (maxN << 1); ++i)
if (cnt[i] == 1)
return i - maxN;
assert(false);
return -1;
}
};
class SolutionOldOld {
public:
static int singleNumber(const std::vector<int>& nums) {
std::unordered_set<int> s;
@ -22,6 +49,6 @@ public:
};
int main() {
std::cout << Solution::singleNumber({4,1,2,1,2});
std::cout << Solution::singleNumber({1});
return 0;
}