Question:
Given a collection of distinct 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], [3,2,1] ]
Solution:
public class Solution {
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> ans=new ArrayList<List<Integer>>();
permute(ans, 0, nums);
return ans;
}
public void permute(List<List<Integer>> ans, int begin, int[] nums)
{
if(begin>=nums.length-1)
{
List<Integer> tmp=new ArrayList<Integer>();
for(int i=0;i<=nums.length-1;i++)
tmp.add(nums[i]);
ans.add(new ArrayList<Integer>(tmp));
return;
}
else
{
for(int i=begin;i<=nums.length-1;i++)
{
// swap(nums[i],nums[begin]);
int tmp=nums[i];
nums[i]=nums[begin];
nums[begin]=tmp;
permute(ans, begin+1,nums);
//swap(nums[begin],nums[i]);
tmp=nums[i];
nums[i]=nums[begin];
nums[begin]=tmp;
}
}
}
}
数组swap函数怎么写????????????