From e1ca40071b48a3348d9ec2b5b62af7cbb5edc8fc Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 23 May 2020 14:43:24 +0800 Subject: import(solutions): Add problem 260 . --- works/solutions/cpp/260-2.cpp | 26 ++++++++++++++++++++++++++ works/solutions/cpp/260.cpp | 23 +++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 works/solutions/cpp/260-2.cpp create mode 100644 works/solutions/cpp/260.cpp diff --git a/works/solutions/cpp/260-2.cpp b/works/solutions/cpp/260-2.cpp new file mode 100644 index 0000000..336d9e1 --- /dev/null +++ b/works/solutions/cpp/260-2.cpp @@ -0,0 +1,26 @@ +#include + +using std::vector; + +class Solution +{ +public: + vector singleNumber(vector &nums) + { + int diff = 0; + for (auto i : nums) + { + diff ^= i; + } + + int mask = diff & (-diff); + + int result = 0; + for (auto i : nums) + { + result ^= (i & mask) ? i : 0; + } + + return {result, result ^ diff}; + } +}; diff --git a/works/solutions/cpp/260.cpp b/works/solutions/cpp/260.cpp new file mode 100644 index 0000000..5679d52 --- /dev/null +++ b/works/solutions/cpp/260.cpp @@ -0,0 +1,23 @@ +#include +#include + +using std::vector; + +class Solution +{ +public: + vector singleNumber(vector &nums) + { + std::unordered_set s; + for (auto i : nums) + { + const auto result = s.find(i); + if (result == s.cend()) + s.insert(i); + else + s.erase(result); + } + + return vector(s.cbegin(), s.cend()); + } +}; -- cgit v1.2.3