zoukankan      html  css  js  c++  java
  • 1~n的全排列--阅文集团2018校招笔试题

    题目大意:给定整数n,求出1~n的全排列

    示例

    输入:n=3

    输出:[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]

     1 import java.util.Scanner;
     2 import java.util.ArrayList;
     3 
     4 public class Main{
     5   private void func(ArrayList<Integer> nArray, ArrayList<ArrayList<Integer>> results, ArrayList<Integer> oneResult) {
     6     int nArraySize = nArray.size();
     7     if(nArraySize == 0) {
     8       results.add(new ArrayList<Integer>(oneResult)); // 要新建一个类加入到结果集中,不然最终结果集中所有结果都一样(因为是同一个ArrayList)      
     9       return;
    10     }
    11     int tmp = 0;
    12     for(int i=0; i<nArraySize; i++) {
    13       tmp = nArray.get(i);
    14       nArray.remove(i);
    15       oneResult.add(tmp);
    16       func(nArray, results, oneResult);
    17       nArray.add(i, tmp);
    18       oneResult.remove(oneResult.size()-1);
    19     }
    20     
    21   }
    22   
    23   public static void main(String[] args) {
    24     Main mainClass = new Main();
    25     Scanner in = new Scanner(System.in);
    26     while(in.hasNext()) {
    27       String input = in.next();
    28       int n = Integer.parseInt(input.split("=")[1]);
    29       ArrayList<Integer> nArray = new ArrayList<Integer>();
    30       for(int i=1; i<=n; i++) {
    31         nArray.add(i);
    32       }
    33       
    34       ArrayList<ArrayList<Integer>> results = new ArrayList<ArrayList<Integer>>();
    35       mainClass.func(nArray, results, new ArrayList<Integer>());
    36       
    37       /**
    38        * 构造输出格式
    39        */
    40       StringBuilder stringBuilder = new StringBuilder();
    41       for(int i=0; i<results.size(); i++) {
    42         if(i > 0) {
    43               stringBuilder.append(",");
    44           }
    45         stringBuilder.append("[");
    46         for(int j=0; j<results.get(i).size(); j++) {
    47           if(j > 0) {
    48               stringBuilder.append(",");
    49           }
    50           stringBuilder.append(results.get(i).get(j));
    51         }
    52         stringBuilder.append("]");
    53       }
    54       
    55       System.out.println(stringBuilder.toString());
    56     }
    57     in.close();
    58   }
    59 }
  • 相关阅读:
    Webx5 label的取值和赋值(div)
    webx5 复选框的显示
    WebX5 Data遍历以及获取数组最后一个元素(更新)
    API集市--分享API
    WebX5 Data判断当前行的值是否改变,以及改变当前行的状态
    WebX5手机GPS定位,无需开启网络
    JS:var 变量=变量 && 变量
    jQuery的ready ()的几种写法
    .net 微信支付(公众号支付)遇到的问题
    .net中的Dictionary字典类的使用方法
  • 原文地址:https://www.cnblogs.com/renzongxian/p/7730038.html
Copyright © 2011-2022 走看看