package com.algorithm.odd;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class PermuteTest {
public boolean isTarget;
public void permute(List list,List target,int begin,int end){
if(begin>end){
if(isTarget){
System.out.println(list);
isTarget=false;
return;
}
if(list.equals(target)){
isTarget=true;
}
}else{
for(int i=begin;i<=end;i++){
Collections.swap(list, i, begin);
permute(list,target,++begin,end);
Collections.swap(list, --begin, i);
}
}
}
public static void main(String[] args){
List list=new ArrayList(Arrays.asList(1,2,3,4,5));
List target=new ArrayList(Arrays.asList(1,2,3,5,4));
PermuteTest p=new PermuteTest();
p.permute(list, target, 0, 4);
}
}
输出结果:
[1, 2, 4, 3, 5]