public class Solution {
public ArrayList<ArrayList<Integer>> permute(int[] num) {
ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>> ();
ArrayList<Integer> temp = new ArrayList<Integer> ();
int len = num.length;
int[] used = new int[len];
getpermute(num, len, used, temp, res);
return res;
}
public void getpermute(int[] num, int len, int[] used, ArrayList<Integer> temp, ArrayList<ArrayList<Integer>> res) {
if (temp.size()==len) {
res.add((ArrayList<Integer>) temp.clone());
return;
}
for (int i=0; i<len; i++) {
if (used[i]==0) {
temp.add(num[i]);
used[i] = 1;
getpermute(num, len, used, temp, res);
used[i] = 0;
temp.remove(temp.size()-1);
}
}
}
}
没有评论:
发表评论