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 };
     
  • 相关阅读:
    网络编程之Tcp,udp
    网络编程简介
    面向对象之高级篇 反射,元类
    面向对象 高级篇
    面向对象,继承
    初识面向对象
    包 hashlib,logging
    模块
    Dango生命周期回顾与forms组件
    Django中auth登录、注册、修改密码、退出、ORM自关联
  • 原文地址:https://www.cnblogs.com/reachteam/p/4215212.html
Copyright © 2011-2022 走看看