#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 {}; } };