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 };
     
  • 相关阅读:
    Bootstrap中的Dropdown悬停触发
    git常用命令整理
    ThinkPHP-项目模块分组后自定义类库文件放去哪?
    项目开发中常用的PHP实用代码算法
    1049. Counting Ones (30)
    1059. Prime Factors (25)
    1050. String Subtraction (20)
    观察者模式
    策略模式
    JVM剖析
  • 原文地址:https://www.cnblogs.com/reachteam/p/4215212.html
Copyright © 2011-2022 走看看