zoukankan      html  css  js  c++  java
  • [Leetcode] Permutations

    Given a collection of numbers, return all possible permutations.

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


    Solution:

     1 public class Solution {
     2     public List<List<Integer>> permute(int[] num) {
     3         List<List<Integer>> result=new ArrayList<List<Integer>>();
     4         List<Integer> al=new ArrayList<Integer>();
     5         boolean[] flag=new boolean[num.length];
     6         dfs(num,result,al,0,flag);
     7         return result;
     8     }
     9 
    10     private void dfs(int[] num, List<List<Integer>> result, List<Integer> al, int level,boolean[] flag) {
    11         // TODO Auto-generated method stub
    12         if(level>num.length)
    13             return;
    14         if(level==num.length){
    15             result.add(new ArrayList<Integer>(al));
    16             return;
    17         }
    18         for(int i=0;i<num.length;++i){
    19             if(!flag[i]){
    20                 flag[i]=true;
    21                 al.add(num[i]);
    22                 dfs(num, result, al, level+1, flag);
    23                 al.remove(al.size()-1);
    24                 flag[i]=false;
    25             }
    26         }    
    27     }
    28 }
  • 相关阅读:
    mysql正则表达式
    阿里云OSS 获取目录下所有文件
    docker 部署mvc项目 <四>
    docker部署项目 <三>
    docker 安装mysql数据库 <二>
    docker安装 <一>
    安装 Docker <一>
    Mongodb字段自增长
    EF的使用<三>
    EF 简单介绍<一>
  • 原文地址:https://www.cnblogs.com/Phoebe815/p/4093980.html
Copyright © 2011-2022 走看看