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