去面试一家公司的现场面试题,只能想到for循环方法,递归暂时没想出来,晚上补充。
package com.basic;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
//1,2,2,3,4,5的所有排列组合,并且4不在第三位,3和5不能在一起
public class Huawei {
public static void main(String[] arg){
Set s=new HashSet();
int[] arr={1,2,2,3,4,5};
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
if(j==i||arr[i]*arr[j]==15){
continue;
}
for(int k=0;k<arr.length;k++){
if(k==i||k==j||arr[j]*arr[k]==15||arr[k]==4){
continue;
}
for(int m=0;m<arr.length;m++){
if(m==i||m==j||m==k||arr[k]*arr[m]==15){
continue;
}
for(int n=0;n<arr.length;n++){
if(n==i||n==j||n==k||n==m||arr[n]*arr[m]==15){
continue;
}
for(int p=0;p<arr.length;p++){
if(p==i||p==j||p==n||p==m||p==k||arr[p]*arr[n]==15){
continue;
}
int temp=arr[i]*100000+arr[j]*10000+arr[k]*1000+arr[m]*100+arr[n]*10+arr[p];
s.add(temp);
}
}
}
}
}
}
Iterator it=s.iterator();
for(int i=0;i<s.size();i++){
System.out.println(it.next());
}
System.out.println("长度"+s.size());
}
}
其中set是为了消去重复元素。