From 326523b17072f8925317e7a6ecbd5fc3459d296b Mon Sep 17 00:00:00 2001 From: Eat-Swap Date: Thu, 12 May 2022 20:32:01 +0800 Subject: [PATCH] add: 220512 [cpp] --- cpp/2205/220512.cpp | 32 ++++++++++++++++++++++++++++++++ cpp/2205/CMakeLists.txt | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 cpp/2205/220512.cpp diff --git a/cpp/2205/220512.cpp b/cpp/2205/220512.cpp new file mode 100644 index 0000000..891431c --- /dev/null +++ b/cpp/2205/220512.cpp @@ -0,0 +1,32 @@ +#include +#include +#include + +/** + * 47. Permutations II + * Given a collection of numbers, nums, that might contain duplicates, return all possible unique permutations in any order. + */ + +class Solution { +public: + static std::vector> permuteUnique(std::vector& nums) { + std::sort(nums.begin(), nums.end()); + std::vector> ret {nums}; + while (std::next_permutation(nums.begin(), nums.end())) { + ret.push_back(nums); + } + return ret; + } +}; + +int main() { + std::vector arg {1, 1, 2}; + auto r = Solution::permuteUnique(arg); + for (const auto& i : r) { + for (const auto& j : i) { + std::printf("%d ", j); + } + std::putchar('\n'); + } + return 0; +} diff --git a/cpp/2205/CMakeLists.txt b/cpp/2205/CMakeLists.txt index 4a7eb9c..b94ece2 100644 --- a/cpp/2205/CMakeLists.txt +++ b/cpp/2205/CMakeLists.txt @@ -3,4 +3,4 @@ PROJECT(2205) SET(CMAKE_CXX_STANDARD 23) -ADD_EXECUTABLE(2205 220512-CN.cpp) +ADD_EXECUTABLE(2205 220512.cpp)