From e24ac8a0f6bf20e9e3718c4222c307b87ae0e756 Mon Sep 17 00:00:00 2001 From: Eatswap Date: Sun, 23 Oct 2022 22:03:42 +0800 Subject: [PATCH] fix: improvement --- cpp/2210/221023.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/cpp/2210/221023.cpp b/cpp/2210/221023.cpp index 7145998..08f20c1 100644 --- a/cpp/2210/221023.cpp +++ b/cpp/2210/221023.cpp @@ -11,16 +11,14 @@ class Solution { public: static std::vector findErrorNums(const std::vector& n) { - std::vector s(n.size() + 1); - int x = 0; - for (int i : n) { - if (s[i]) - x = i; - s[i] = true; + int x = 0, y = 0, m = n.size(); + std::vector s(m); + for (int i = 0; i < m; ++i) { + if (s[n[i] - 1]) + x = n[i]; + s[n[i] - 1] = true; + y ^= (i + 1) ^ n[i]; } - for (int i = 1; i <= s.size(); ++i) - if (!s[i]) - return {x, i}; - return {}; + return {x, x ^ y}; } };