import java.util.ArrayList;
import java.util.List;
/**
*
* @author Youjc
* @date 2018年3月14日
*/
public class Solution {
String result = "";
List<String> abclist = new ArrayList<String>();
public String PrintMinNumber(int[] numbers) {
int length = numbers.length;
if(length==0)
{
return "";
}
else if (length == 1) {
return String.valueOf(numbers[0]);
} else if (length == 2) {
String value1 = String.valueOf(numbers[0])+String.valueOf(numbers[1]);
String value2 = String.valueOf(numbers[1])+String.valueOf(numbers[0]);
if(Long.parseLong(value1)<=Long.parseLong(value2))
{
return value1;
}else
{
return value2;
}
} else {
for (int i = 0; i < numbers.length; i++) {
List<Integer> numflaglist = new ArrayList<Integer>();
numflaglist.add(i);
Finalcial(numbers, length, numflaglist, String.valueOf(numbers[i]));
}
System.out.println(abclist);
long minvalue = Long.parseLong(abclist.get(0));
for (int i = 1; i < abclist.size(); i++) {
if (Long.parseLong(abclist.get(i)) < minvalue) {
minvalue = Long.parseLong(abclist.get(i));
}
}
return String.valueOf(minvalue);
}
}
public static void main(String[] args) {
System.out.println(new Solution().PrintMinNumber(new int[] { 1, 2 }));
}
public List<String> Finalcial(int[] numbers, int length, List<Integer> numflag, String originvalue) {
if (length == 2) {
List<String> twovalue = new ArrayList<String>();
for (int k = 0; k < numbers.length; k++) {
if (!numflag.contains(k)) {
twovalue.add(String.valueOf(numbers[k]));
}
}
String value1 = originvalue + twovalue.get(0) + twovalue.get(1);
String value2 = originvalue + twovalue.get(1) + twovalue.get(0);
abclist.add(value1);
abclist.add(value2);
} else {
int t = length - 1;
if (t == 2) {
Finalcial(numbers, t, numflag, originvalue);
} else {
for (int k = 0; k < numbers.length; k++) {
if (!numflag.contains(k)) {
String value = "";
numflag.add(k);
value = originvalue + String.valueOf(numbers[k]);
Finalcial(numbers, t, numflag, value);
for (int d = 0; d < numflag.size(); d++) {
if (numflag.get(d) == k) {
numflag.remove(d);
}
}
}
}
}
}
return abclist;
}
}
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
最新推荐文章于 2020-11-22 15:38:55 发布