public class Solution {
public IList<IList<int>> Permute(int[] nums) {
List<IList<int>> rst=new List<IList<int>>();
if(nums==null)
{
return rst;
}
if(nums.Length==0)
{
rst.Add(new List<int>());
return rst;
}
List<int> list=new List<int>();
helper(rst,list,nums);
return rst;
}
public void helper(List<IList<int>> rst, List<int> list, int[] nums)
{
if(list.Count==nums.Length)
{
rst.Add(new List<int>(list));
return ;
}
for(int i=0;i<nums.Length;i++)
{
if(list.Contains(nums[i]))
{
continue;
}
list.Add(nums[i]);
helper(rst,list,nums);
list.RemoveAt(list.Count-1);
}
}
}
|