WEI-CHENG CHEN

說明

他這題是排列,不是組合,所以不是用 push/pop 的方式去寫,而是用 swap 去寫

解題

class Solution {
public:
    vector<vector<int>> permute(vector<int>& nums) {
        vector<vector<int>> ans;
        backtracking(ans, nums, 0);
        return ans;
    }

    void backtracking(vector<vector<int>> &ans, vector<int>& nums, int start){
        // 終止條件
        if(start==nums.size()){
            ans.push_back(nums);
            return;
        }
        for(int i=start;i<nums.size();i++){
            swap(nums[i], nums[start]);
            backtracking(ans, nums, start+1);
            swap(nums[i], nums[start]);
        }
    }
};