ArrayList<ArrayList<Integer>> res=new ArrayList<>(); //存储最终结果
public void permutation(int[] array) {
permutation(array,0,array.length-1);
}
public void permutation(int[] array,int start,int end){
ArrayList<Integer> tempRes=new ArrayList<>(); //存储单个序列
if(start==end){//终止条件
for (int i = 0; i < array.length; i++) {
tempRes.add(array[i]);
}
res.add(tempRes);
}
for (int i = start; i <= end; i++) {//核心 循环交换start——end的值,产生不同的组合
swap(array,start,i);
permutation(array,start+1,end);
swap(array,start,i);//还原
}
}
public void swap(int[] array,int left,int right){
int temp=array[left];
array[left]=array[right];
array[right]=temp;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。