排列组合算法
Posted energy1010
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排列组合算法相关的知识,希望对你有一定的参考价值。
public class Solution{
public List<List<Integer>> permutations(int[] arr){
List<List<Integer>> res = new ArrayList<List<Integer>>();
//corner
if ( arr == null || arr.length == 0 ){
return res;
}
//core
List<Integer> curList = new ArrayList<>();
helper(res, curList, arr);
return res;
}
public void helper(List<List<Integer>> res, List<Integer> curList, int[] arr){
//base
if ( curList.size() == arr.length ){
res.add(new ArrayList<Integer>(curList));
return ;
}
//current
for ( int i = 0; i < arr.length; i++ ){
if ( curList.contains(arr[i]) ){
continue;
}
curList.add(arr[i]);
//next
helper(res, curList, arr);
curList.remove(curList.size() - 1);
}
}
}
以上是关于排列组合算法的主要内容,如果未能解决你的问题,请参考以下文章