|
@@ -0,0 +1,28 @@
|
|
|
+#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]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|