class Solution { public List> permute(int[] nums) { List> result = new ArrayList<>(); backtrack(result, new ArrayList(), nums); return result; } public void backtrack(List> result, List temp, int [] nums) { if(temp.size() == nums.length) result.add(new ArrayList<>(temp)); else { for(int i=0; i