Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Backtracking
- class Solution {
- public:
- vector < vector <int> > ans;
- int ar[6 + 10];
- int n;
- void f(int l, int r){
- if(l == r){
- vector <int> cur;
- for(int i=0;i<n;i++) cur.push_back(ar[i]);
- ans.push_back(cur);
- return;
- }
- for(int i=l;i<=r;i++){
- swap(ar[l], ar[i]);
- f(l + 1, r);
- swap(ar[l], ar[i]);
- }
- }
- vector<vector<int>> permute(vector<int>& nums) {
- n = nums.size();
- for(int i=0;i<n;i++) ar[i] = nums[i];
- f(0, n-1);
- return ans;
- }
- };
- /// std::next_permutation
- class Solution {
- public:
- vector<vector<int>> permute(vector<int>& nums) {
- vector < vector <int> > ans;
- sort(nums.begin(), nums.end()); /// ***
- do{
- ans.push_back(nums);
- }while(next_permutation(nums.begin(), nums.end()));
- return ans;
- }
- };
Add Comment
Please, Sign In to add comment