Given a collection of numbers, return all possible permutations.
For example,
[1,2,3]
have the following permutations:
[1,2,3]
, [1,3,2]
, [2,1,3]
, [2,3,1]
, [3,1,2]
, and [3,2,1]
.
public class Solution { public List<List<Integer>> permute(int[] nums) { List<List<Integer>> res = new ArrayList<List<Integer>>(); solve(nums, 0, res); return res; } public void solve(int[] nums,int i,List<List<Integer>> res){ if(i==nums.length-1){ List<Integer> t = new ArrayList<Integer>(); for(int j=0;j<nums.length;j++){ t.add(nums[j]); } res.add(t); } for(int j=i;j<nums.length;j++){ int t = nums[i]; nums[i] = nums[j]; nums[j] = t; solve(nums, i+1, res); t = nums[i]; nums[i] = nums[j]; nums[j] = t; } } }