zoukankan      html  css  js  c++  java
  • 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> &num) 
        {
            //sort num
            for(int i=0;i<num.size();i++)
                for(int j=i+1;j<num.size();j++)
                    if(num[i]>num[j])
                    {
                        int tmp=num[i];
                        num[i]=num[j];
                        num[j]=tmp;
                    }
            
            vector<vector<int>> result;
            int v[num.size()];
            generate(result,num,v,0);
            return result;
        }
        void generate(vector<vector<int>>& result,vector<int> num,int* v,int vdep)
        {
            if(num.size()==0)
            {
                vector<int> newnum;
                for(int i=0;i<vdep;i++)
                    newnum.push_back(v[i]);
                result.push_back(newnum);
                return;
            }
            int index=0;
            int size=num.size();
            while(index<size)
            {
                vector<int> newnum;
                for(int i=0;i<size;i++)
                    if(i!=index)
                        newnum.push_back(num[i]);
                v[vdep]=num[index];
                generate(result,newnum,v,vdep+1);
                //next different num
                while(index+1<size && num[index+1]==num[index]) index++;
                index++;
            }
        }
    }; 
  • 相关阅读:
    『华为』[行业要闻]华为,我们的光环还能顶多久(转)
    总结几点Quartz的经验
    LVS
    postfix邮件服务器安全
    让IE浏览器支持RGBA颜色
    PostgreSQL在何处处理 sql查询之六十四
    PostgreSQL在何处处理 sql查询之六十三
    PostgreSQL在何处处理 sql查询之六十五
    对PostgreSQL的prepared statement 的理解
    PostgreSQL在何处处理 sql查询之六十六
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759364.html
Copyright © 2011-2022 走看看