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)