import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @return int整型ArrayList<ArrayList<>> */ public ArrayList<ArrayList<Integer>> permute (int[] num) { // write code here Arrays.sort(num); ArrayList<ArrayList<Integer>> ret = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> tmp = new ArrayList<Integer>(); boolean[] isUsed = new boolean[num.length]; sortSele(ret, tmp, isUsed, num); return ret; } public void sortSele(ArrayList<ArrayList<Integer>> ret, ArrayList<Integer> tmp, boolean[] isUsed, int[] num) { if (tmp.size() == num.length) { ret.add(new ArrayList<Integer>(tmp)); return; } for (int i = 0; i < num.length; i++) { if (!isUsed[i]){ isUsed[i] = true; tmp.add(num[i]); sortSele(ret, tmp, isUsed, num); isUsed[i] = false; tmp.remove(tmp.size()-1); } } } }