46.全排列

2021-03-27  本文已影响0人  我不是匠人

思路

class Solution {
public:
    int n;
    vector<vector<int>> res;
    vector<int> temp;
    vector<bool> st;
    vector<vector<int>> permute(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        n = nums.size();
        temp.resize(n);
        st.resize(n);
        dfs(nums, 0);    
        return res;
    }
    void dfs(vector<int>&nums, int u){
        if(u == n){
            res.push_back(temp);
            return;
        }
        
        for(int i = 0; i < n; i++){
            if(!st[i]){
                st[i] = true;
                temp[i] = nums[u];
                dfs(nums, u+1);
                st[i] = false;
            }
        }
    }
};
上一篇 下一篇

猜你喜欢

热点阅读