public class Solution { /* * @param nums: A list of integers. * @return: A list of permutations. */ public List<List<Integer>> permute(int[] nums) { List<List<Integer>> result = new ArrayList<List<Integer>>(); Set<Integer> set = new HashSet<>(); helper(nums,result,set,new ArrayList<>()); return result; } void helper(int[] nums,List<List<Integer>> result,Set<Integer> used,List<Integer> each){ for(int i=0;i<nums.length;i++){ if(!used.contains(nums[i])){ each.add(nums[i]); used.add(nums[i]);//当前点已经使用 helper(nums,result,used,each); used.remove(nums[i]); each.remove(each.size() - 1); } } if(each.size() == nums.length){ List<Integer> temp = new ArrayList<>(); temp.addAll(each); result.add(temp); } } }
[LintCode] 15. Permutations
猜你喜欢
转载自blog.csdn.net/js54100804/article/details/80181965
今日推荐
周排行