fork(6) download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. std::vector<std::vector<int> > permuteUnique(std::vector<int> num) {
  6. std::sort(num.begin(), num.end());
  7. std::vector<std::vector<int> > res;
  8. if(num.empty()) {
  9. return res;
  10. }
  11. do {
  12. res.push_back(num);
  13. } while (std::next_permutation(num.begin(), num.end()));
  14. return res;
  15. }
  16.  
  17. void print(const std::vector<int>& v)
  18. {
  19. std::cout << "{";
  20. const char* sep = "";
  21. for (const auto& e : v) {
  22. std::cout << sep << e;
  23. sep = ", ";
  24. }
  25. std::cout << "}\n";
  26. }
  27.  
  28. int main()
  29. {
  30. auto res = permuteUnique({2, 1, 1});
  31. for (const auto& e : res) {
  32. print(e);
  33. }
  34.  
  35. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
{1, 1, 2}
{1, 2, 1}
{2, 1, 1}