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

    题意

    列出数组中元素全排列

    思路

    这道题应该可以用next permutaion来解,这里我用的是DFS

     1 public class Solution {
     2     private boolean isVisited[];
     3     
     4     public List<List<Integer>> permute(int[] num) {   
     5         isVisited = new boolean[num.length];
     6         List<List<Integer>> result = new ArrayList<List<Integer>>();
     7         dfs(result, num, 0, new ArrayList<Integer>());
     8         
     9         return result;
    10     }
    11     
    12     /**
    13      * 深度遍历数组
    14      * @param num
    15      * @param dep
    16      */
    17     private void dfs(List<List<Integer>> result, int num[], int dep, List<Integer> cur){
    18         if(dep != num.length){
    19             for(int i = 0; i < num.length; i++){
    20                 if(isVisited[i] == false){
    21                     isVisited[i] = true;
    22                     cur.add(num[i]);
    23                     dfs(result, num, dep + 1, cur);
    24                     isVisited[i] = false;
    25                     cur.remove(cur.size() - 1);
    26                 }//if
    27             }//for
    28         }//if
    29         else{
    30             result.add(new ArrayList<Integer>(cur));
    31         }
    32     }
    33 }
  • 相关阅读:
    lnmp环境搭建
    Git常用命令
    博客园写随笔环境搭建
    Win常用软件
    Docker环境搭建
    ESP-8266 RTOS 环境搭建
    查看Linux信息
    博客园markdown语法
    Java后台技术(TDDL)
    Java后台技术(Dubbo入门)
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4237276.html
Copyright © 2011-2022 走看看