程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode題解:Permutations

LeetCode題解:Permutations

編輯:C++入門知識

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].

題意:求出給定數字的所有組合可能

解決思路:先加入第一個元素,然後把第二個元素插入兩個位置中,第三個位置插入1,2個數中的位置中,插入前要把當前已完成組合復制

代碼:

public class Solution {
    public List> permute(int[] nums) {
        LinkedList> result = new LinkedList>();
        result.add(new ArrayList());

        for(int n : nums){
            for(int len = result.size(); len > 0; len--){
                List temp = result.pollFirst();

                for(int j = 0; j <= temp.size(); j++){
                    List newPermute = new ArrayList(temp);
                    newPermute.add(j, n);
                    result.add(newPermute);
                }
            }
        }

        return result;
    }
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved