From 290344cc788cc81523fbb99c39177af5d013a4d6 Mon Sep 17 00:00:00 2001 From: Eatswap Date: Sun, 23 Oct 2022 15:14:58 +0800 Subject: [PATCH] add: 221023 --- cpp/2210/221023.cpp | 26 ++++++++++++++++++++++++++ cpp/2210/CMakeLists.txt | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 cpp/2210/221023.cpp diff --git a/cpp/2210/221023.cpp b/cpp/2210/221023.cpp new file mode 100644 index 0000000..7145998 --- /dev/null +++ b/cpp/2210/221023.cpp @@ -0,0 +1,26 @@ +#include + +/** + * 645. Set Mismatch + * + * You have a set of integers s, which originally contains all the numbers from 1 to n. Unfortunately, due to some error, one of the numbers in s got duplicated to another number in the set, which results in repetition of one number and loss of another number. + * You are given an integer array nums representing the data status of this set after the error. + * Find the number that occurs twice and the number that is missing and return them in the form of an array. + */ + +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; + } + for (int i = 1; i <= s.size(); ++i) + if (!s[i]) + return {x, i}; + return {}; + } +}; diff --git a/cpp/2210/CMakeLists.txt b/cpp/2210/CMakeLists.txt index adbe255..0de6270 100644 --- a/cpp/2210/CMakeLists.txt +++ b/cpp/2210/CMakeLists.txt @@ -3,4 +3,4 @@ PROJECT(2210) SET(CMAKE_CXX_STANDARD 23) -ADD_EXECUTABLE(2210 221023-CN.cpp) +ADD_EXECUTABLE(2210 221023.cpp)