12345678910111213141516171819202122232425262728 |
- #include <algorithm>
- #include <vector>
- #include "function.h"
- using namespace std;
- bool isswap(vector<int> &arr, size_t beg, size_t end) {
- for (size_t i = beg; i < end; ++i) {
- if (arr[i] == arr[end])
- return false;
- }
- return true;
- }
- void permutation(vector<int> &arr, size_t pos, size_t len, vector<vector<int>> &res){
- if (pos == len) {
- res.push_back(arr);
- return;
- }
- for (size_t i = pos; i <= len; ++i) {
- if (isswap(arr, pos, i) == true) {
- swap(arr[pos], arr[i]);
- permutation(arr. pos + 1, len, res);
- swap(arr[pos], arr[i]);
- }
- }
- }
|