Skip to content

Commit 1af903a

Browse files
committed
Permutation in an array
1 parent 7625c7d commit 1af903a

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

Recursion/PermutationsInArray.cpp

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include <iostream>
2+
#include <vector>
3+
#include <algorithm>
4+
using namespace std;
5+
6+
void getPermut(vector<int> &nums, int idx, vector<vector<int>> &ans)
7+
{
8+
if (idx == nums.size())
9+
{
10+
ans.push_back({nums});
11+
return;
12+
}
13+
14+
for (int i = idx; i < nums.size(); i++)
15+
{
16+
swap(nums[idx], nums[i]);
17+
getPermut(nums, idx + 1, ans);
18+
19+
// Backtracking
20+
swap(nums[idx], nums[i]);
21+
}
22+
}
23+
24+
vector<vector<int>> permute(vector<int> &nums)
25+
{
26+
vector<vector<int>> ans;
27+
getPermut(nums, 0, ans);
28+
29+
return ans;
30+
}
31+
32+
int main()
33+
{
34+
vector<int> arr = {1, 2, 3};
35+
36+
vector<vector<int>> result = permute(arr);
37+
38+
// Printing the subsets
39+
cout << "Permutations are:\n";
40+
for (const auto &permutation : result)
41+
{
42+
cout << "{ ";
43+
for (int num : permutation)
44+
{
45+
cout << num << " ";
46+
}
47+
cout << "}\n";
48+
}
49+
50+
return 0;
51+
}

Recursion/PermutationsInArray.exe

94 KB
Binary file not shown.

0 commit comments

Comments
 (0)