• leetcode- Permutations II


    题目:

     Permutations II 

    Given a collection of numbers that might contain duplicates, return all possible unique permutations.

    For example,
    [1,1,2] have the following unique permutations:
    [1,1,2][1,2,1], and [2,1,1].



    class Solution {
    public:
        vector<vector<int>> permuteUnique(vector<int>& nums) {
             vector<vector<int>>  res;
            if(nums.empty())
                return res;
            permute(nums,0,res);
            return res;
        }
        
         void permute(vector<int>& nums,int index, vector<vector<int>>  &res)
        {
            if(index==nums.size())
            {
                res.push_back(nums);
                return;
            }
            
            permute(nums,index+1,res);
            unordered_set<int> prev;//用哈希表记录。避免反复值
            prev.emplace(nums[index]);
            
            for(int i=index+1;i<nums.size();++i)
            {
                if(prev.count(nums[i])>0)//忽略反复值
                    continue;
                 prev.emplace(nums[i]);
                swap(nums[index],nums[i]);
                permute(nums,index+1,res);
                swap(nums[index],nums[i]);
            }
        }
    };


  • 相关阅读:
    deepin 系统更新命令
    安装mongdb
    读model所得
    上周某一天
    在项目中直接执行里面的文件
    数据库(六)
    数据库(五)
    数据库(四)
    数据库(三)
    数据库(二)
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7096493.html
Copyright © 2020-2023  润新知