美文网首页
47. Permutations II

47. Permutations II

作者: jecyhw | 来源:发表于2019-05-27 06:38 被阅读0次

    题目链接

    https://leetcode.com/problems/permutations-ii/

    解题思路

    dfs的时候每一层上的数字不要重复出现

    代码

    class Solution {
    public:
        void dfs(vector<vector<int>> &ans, vector<int> &nums, int ind) {
            if (ind >= nums.size()) {
                ans.push_back(nums);
            }
    
            unordered_set<int> set;
            for (int i = ind; i < nums.size(); ++i) {
                if (set.find(nums[i]) == set.end()) {
                    set.insert(nums[i]);
                    swap(nums[ind], nums[i]);
                    dfs(ans, nums, ind + 1);
                    swap(nums[ind], nums[i]);
                }
            }
        }
    
        vector<vector<int>> permuteUnique(vector<int>& nums) {
            vector<vector<int>> ans;
            dfs(ans, nums, 0);
            return ans;
        }
    };
    

    相关文章

      网友评论

          本文标题:47. Permutations II

          本文链接:https://www.haomeiwen.com/subject/hioqtctx.html