zoukankan      html  css  js  c++  java
  • 【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].

     
    先排序,如果一个元素与上一个元素相等,且前面没有使用该元素,则该元素不参与当前排列
     
     
     1 class Solution {
     2 public:
     3     vector<vector<int> > permuteUnique(vector<int> &num) {
     4        
     5         sort(num.begin(),num.end());
     6         vector<vector<int> > result;
     7         vector<int> tmp;
     8         vector<bool> visited(num.size());
     9         dfs(0,num,result,visited,tmp);
    10         return result;
    11        
    12     }
    13    
    14    
    15     void dfs(int level,vector<int> &num,vector<vector<int> > &result,vector<bool> &visited,vector<int> &tmp)
    16     {
    17         if(level==num.size())
    18         {
    19             result.push_back(tmp);
    20             return;
    21         }
    22        
    23         for(int i=0;i<num.size();i++)
    24         {
    25             if(!visited[i])
    26             {
    27                 if(i>=1&&((num[i]==num[i-1]&&visited[i-1])||(num[i]!=num[i-1]))||i==0)
    28                 {
    29                     visited[i]=true;
    30                     tmp.push_back(num[i]);
    31                     dfs(level+1,num,result,visited,tmp);
    32                     tmp.pop_back();
    33                     visited[i]=false;
    34                 }
    35             }
    36         }
    37     }
    38    
    39 };
     
  • 相关阅读:
    WCF简单使用(分别部署在控制台和IIS上)
    WCF系列教程之WCF服务配置工具
    053547
    053546
    053545
    053544
    053543
    053542
    053541
    053540
  • 原文地址:https://www.cnblogs.com/reachteam/p/4215212.html
Copyright © 2011-2022 走看看