import java.util.ArrayList;
/**
* 传入一个数组,输出这个数组里面元素的所有可能组合
* EG:[1,2,3] 输出[1,2,3][1,3,2][2,1,3][2,3,1][3,1,2][3,2,1]
* @author Administrator
*/
public class ArrSort {
static ArrSort as;
ArrayList<String> save = new ArrayList<String>();
static String[] arr = {"1","2","3","4"};
/**
* 判断list里面是否放入过当前数
* @param cur 当前数
* @param save list
* @return
*/
public boolean is(String cur,ArrayList<String> save){
for (String string : save) {
if(null == string)return false;
if(string.equals(cur)){
return true;
}
}
return false;
}
public void rec(int a){
for(int i=0;i<arr.length;i++){
if(as.is(arr[i], save))continue;
save.add(arr[i]);
if(a==1){
System.out.println(save);
}
rec(a -1);
save.remove(arr.length-a);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
as = new ArrSort();
as.rec(arr.length);
}
}
面试的一道题
传入一个数组,输出这个数组里面的所有排列
最新推荐文章于 2021-09-26 22:55:50 发布