描述
给定一个数字列表,返回其所有可能的排列。
你可以假设没有重复数字。
样例
样例 1:
输入:[1]
输出:
[
[1]
]
样例 2:
输入:[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;
public class Exp15 {
public static void diGui(List<Integer> param1, List<List<Integer>> result, int[] nums){
for (int i = 0; i < nums.length; i++) {
List<Integer> InnerParam = new ArrayList<>(param1);
if(InnerParam.size()==nums.length){
result.add(InnerParam);
break;
}
if(!InnerParam.contains(nums[i])) {
InnerParam.add(nums[i]);
System.out.println("nums[i]:"+nums[i]+" param1:"+param1);
diGui(InnerParam, result, nums);
}
}
}
public static List<List<Integer>> permute(int[] nums) {
List<List<Integer>> result = new ArrayList<>();
if(nums.length==0){
List<Integer> paramNull = new ArrayList<Integer>();
result.add(paramNull);
return result;
}
List<Integer> param1 = new ArrayList<>();
diGui(param1,result, nums);
return result;
}
public static void main(String[] args) {
int[] param = {};
System.out.println(permute(param));
}
}