zoukankan      html  css  js  c++  java
  • Permutations

    Given a collection of distinct 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],
      [3,2,1]
    ]
    
    public List<List<Integer>> permute(int[] nums) {
            List<Integer> numbers = new ArrayList<>();
            for (int num :
                    nums) {
                numbers.add(num);
            }
            List<List<Integer>> results = new ArrayList<>();
            boolean[] booleans = new boolean[nums.length];
            for (int i=0;i<booleans.length;i++){
                booleans[i] = true;
            }
            helper(numbers, new ArrayList<>(),results,booleans);
            return results;
        }
        public void helper(List<Integer> nums,List<Integer> curr,List<List<Integer>> results,boolean[] booleans){
            if (curr.size()==nums.size()){
                List<Integer> item = new ArrayList<>();
                item.addAll(curr);
                results.add(item);
                return;
            }
            for (int i = 0; i < nums.size(); i++) {
                if (booleans[i]==true){
                    curr.add(nums.get(i));
                    booleans[i] = false;
                    helper(nums,curr,results,booleans);
                    booleans[i] = true;
                    curr.remove(curr.size()-1);
                }
            }
        }
    
  • 相关阅读:
    Linux排序命令sort笔记
    Linux排序命令sort笔记
    Linux文本截取命令cut​笔记
    排序和搜索
    栈和队列
    链表
    顺序表
    Linux编辑器|gedit|vi|vim编辑器
    Linux简介
    简单学习Git
  • 原文地址:https://www.cnblogs.com/bingo2-here/p/8515100.html
Copyright © 2011-2022 走看看