import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型二维数组
*/
public static LinkedList<LinkedList<Integer>> lists = new LinkedList<>();
public int[][] cow_permute (int[] nums) {
// write code here
Boolean[] flags = new Boolean[nums.length];
Arrays.fill(flags,false);
search(nums,flags,new LinkedList<>());
int[][] arr = new int[lists.size()][nums.length];
for(int i=lists.size()-1;i>=0;i--){
for(int j=0;j<nums.length;j++){
arr[lists.size()-1-i][j] = lists.get(i).get(j);
}
}
return arr;
}
public void search(int[] nums,Boolean[] flags,LinkedList<Integer> arrayList){
if(arrayList.size()==nums.length){
lists.add(new LinkedList<>(arrayList));
}
for(int i=0;i<flags.length;i++){
if(!flags[i]){
arrayList.add(nums[i]);
flags[i]=true;
search(nums,flags,arrayList);
arrayList.remove(arrayList.size()-1);
flags[i] = false;
}
}
}
}
本题考察的知识点就是N叉树的应用,所用编程语言是java.本题主要是N叉树的建立,不存在剪枝的情况,所以我们只要考虑建立N叉树就行。

京公网安备 11010502036488号