LeetCode——全排列

Posted 初仰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode——全排列相关的知识,希望对你有一定的参考价值。

给定一个没有重复数字的序列,返回其所有可能的全排列。

示例:

输入: [1,2,3]
输出:
[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2],
  [3,2,1]
]
 
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

public class FullSort {

private List<List<Integer>> lists = new ArrayList<List<Integer>>();
public List<List<Integer>> permute(int[] nums) {
if(nums.length == 0) {
return lists;
}
else{
allSort(nums,new Stack<Integer>());
return lists;
}
}
//递归函数
public void allSort(int[]nums,Stack<Integer> stack)
{
//终止条件
if(stack.size() == nums.length )
{
lists.add(new ArrayList<Integer>(stack));
return;
}
for (int num : nums) {
if( stack.contains(num) ) {
continue;
}
stack.push(num);
allSort(nums,stack);
    //出栈
stack.pop();
}
}
}
 
 

以上是关于LeetCode——全排列的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode46. Permutations(全排列)

[Leetcode 46]全排列 Permutations 递归

LeetCode 47. 全排列 II(Permutations II)

LeetCode 46. 全排列(Permutations)

#yyds干货盘点# leetcode算法题:全排列

LeetCode 31 Next Permutation(下一个全排列)