public class Test15 {
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> result = new ArrayList<>();
function(nums,result,0);
return result;
}
public void function(int[]nums,List<List<Integer>> result,int index){
if (index==nums.length-1) {
List<Integer> temp = new ArrayList<>();
for (int num : nums) {
temp.add(num);
}
result.add(temp);
return;
}
function(nums,result,index+1);
for (int i = index+1; i <nums.length ; i++) {
int[] copy = Arrays.copyOf(nums, nums.length);
int temp = copy[index];
copy[index]=copy[i];
copy[i] = temp;
function(copy,result,index+1);
}
}
}