function.cpp 590 B

12345678910111213141516171819202122232425262728
  1. #include <algorithm>
  2. #include <vector>
  3. #include "function.h"
  4. using namespace std;
  5. bool isswap(vector<int> &arr, size_t beg, size_t end) {
  6. for (size_t i = beg; i < end; ++i) {
  7. if (arr[i] == arr[end])
  8. return false;
  9. }
  10. return true;
  11. }
  12. void permutation(vector<int> &arr, size_t pos, size_t len, vector<vector<int>> &res){
  13. if (pos == len) {
  14. res.push_back(arr);
  15. return;
  16. }
  17. for (size_t i = pos; i <= len; ++i) {
  18. if (isswap(arr, pos, i) == true) {
  19. swap(arr[pos], arr[i]);
  20. permutation(arr. pos + 1, len, res);
  21. swap(arr[pos], arr[i]);
  22. }
  23. }
  24. }