public class Solution {
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> ret=new ArrayList<>();
Helper(ret,nums,0);
return ret;
}
public void Helper(List<List<Integer>> ret,int [] nums,int cur)
{
if (cur==nums.length)
{
List<Integer> temp=new ArrayList<>();
for (Integer item:nums)
{
temp.add(item);
}
ret.add(temp);
}
else{
for (int i=cur;i<nums.length;i++)
{
swap(nums,cur,i);
Helper(ret,nums,cur+1);
swap(nums,cur,i);
}
}
}
public void swap(int [] nums,int a,int b)
{
int tmp=nums[a];
nums[a]=nums[b];
nums[b]=tmp;
}
}