[Leetcode 46]全排列 Permutations 递归
Posted leetcode刷题中
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Leetcode 46]全排列 Permutations 递归相关的知识,希望对你有一定的参考价值。
【题目】
Given a collection of distinct integers, return all possible permutations.
数组的组合情况。
Input: [1,2,3] Output: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
【思路】
求子集,排列组合的数组题有固定模板。
【代码】
class Solution { public List<List<Integer>> permute(int[] nums) { Arrays.sort(nums); List<List<Integer>> ans=new ArrayList<>(); List<Integer> tmp=new ArrayList<>(); fun(ans,tmp,nums); return ans; } public void fun(List<List<Integer>> ans,List<Integer> tmp,int[] nums){ if(tmp.size()==nums.length){ ans.add(new ArrayList<>(tmp)); } else{ for(int i=0;i<nums.length;i++){ if(tmp.contains(nums[i])) continue; tmp.add(nums[i]); fun(ans,tmp,nums); tmp.remove(tmp.size()-1); } } } }
以上是关于[Leetcode 46]全排列 Permutations 递归的主要内容,如果未能解决你的问题,请参考以下文章