public
class
FrameArrayTest
{
public
static
void
recursionSub ( LinkedList<String[]> list,
int
count, String[] array,
int
ind,
int
start,
int
... indexs )
{
start++;
if
(start > count -
1
)
{
return
;
}
if
(start ==
0
)
{
indexs =
new
int
[array.length];
}
for
( indexs[start] =
0
; indexs[start] < array.length; indexs[start]++ )
{
recursionSub (list, count, array,
0
, start, indexs);
if
(start == count -
1
)
{
String[] temp =
new
String[count];
for
(
int
i = count -
1
; i >=
0
; i-- )
{
temp[start - i] = array[indexs[start - i]];
}
boolean
flag =
true
;
L:
for
(
int
i =
0
; i < temp.length; i++ )
{
for
(
int
j = i +
1
; j < temp.length; j++ )
{
if
(temp[i] == temp[j])
{
flag =
false
;
break
L;
}
}
}
if
(flag)
{
list.add (temp);
}
}
}
}
public
static
void
main ( String args[] )
{
String string =
"1,2,3,4"
;
String[] A = string.split (
","
);
LinkedList<String[]> list =
new
LinkedList<String[]> ();
recursionSub (list,
3
, A,
0
, -
1
);
int
max = Integer.MIN_VALUE;
for
( String[] strings : list )
{
String temp = Arrays.toString (strings).replaceAll (
"[\\[\\],\\s]"
,
""
);
int
t = Integer.parseInt (temp);
max = max < t ? t : max;
System.out.println (temp);
}
System.out.println (
"最大三位数切不重复: "
+ max);
}
}