LeetCode 46. Permutations

xiaoxiao2021-02-27  210

题意

求一个不重复的序列的全排列

思路

直接使用 DFS ,使用 hash 标记当前数是否使用过

代码

class Solution { public: map<int, int>mp; vector<vector<int>> permute(vector<int>& nums) { vector<vector<int> >ans; vector<int>temp; DFS(ans, temp, nums, 0); return ans; } void DFS(vector<vector<int> >& ans, vector<int>& temp, vector<int>& nums, int id){ if(id == nums.size()){ ans.push_back(temp); return ; } for(int i = 0 ; i < nums.size(); i++){ if(mp[i]) continue; mp[i] = 1; temp.push_back(nums[i]); DFS(ans, temp, nums, id + 1); temp.pop_back(); mp[i] = 0; } } };
转载请注明原文地址: https://www.6miu.com/read-11149.html

最新回复(0)