leetcode-回溯-46. 全排列

class Solution { public: vector<vector<int>> res; vector<vector<int>> permute(vector<int>& nums) { vector<int> temp; for(int i = 0; i < nums.size(); i++){ temp.push_back(nums[i]); } back(nums,0,temp); return res; } // 思想就是;先讲第一位与后面依次交换,在此基础上,将第二位与后面依次交换,。。。 void back(vector<int> &nums, int index, vector<int> &temp){ if(index==nums.size()-1) res.push_back(temp); for(int i = index; i < nums.size(); i++){ swap(temp[index],temp[i]); back(nums, index+1, temp); swap(temp[i],temp[index]); } } };

浙公网安备 33010602011771号