public static void main(String[] args) {
/*
最小数字 输入 21,30,62,5,31 输出 21305
输入5,21 输出 215
*/
int[] nums = {21,30,62,5,31};
List<Integer> firList = new ArrayList<>();
StringBuilder result = new StringBuilder();
for (int i = 0; i < nums.length; i++) {
firList.add(nums[i]);
}
if (nums.length > 2) {
// 找第一个最小值
List<Integer> secList = getNum(firList, result);
// 找第三个最小值
List<Integer> thrList = getNum(secList, result);
// 找第三个最小值
getThrNum(thrList, result);
System.out.println(result);
} else {
int num1 = Integer.parseInt(firList.get(0) + "" + firList.get(1));
int num2 = Integer.parseInt(firList.get(1) + "" + firList.get(0));
if (num1 < num2) {
System.out.println(num1);
} else {
System.out.println(num2);
}
}
}
private static List<Integer> getNum(List<Integer> numList, StringBuilder result) {
List<Integer> newList = new ArrayList<>();
int firIndex = 0;
int fir = numList.get(0);
for (int i = 0; i < numList.size(); i++) {
String[] firNum = String.valueOf(fir).split("");
for (int j = i+1; j < numList.size(); j++) {
String[] secNum = String.valueOf(numList.get(j)).split("");
if (Integer.parseInt(firNum[0]) > Integer.parseInt(secNum[0])) {
fir = numList.get(j);
firIndex = j;
}
}
}
result.append(fir);
numList.remove(firIndex);
newList.addAll(numList);
return newList;
}
private static void getThrNum(List<Integer> numList, StringBuilder result) {
int fir = numList.get(0);
for (int i = 0; i < numList.size(); i++) {
for (int j = i+1; j < numList.size(); j++) {
String[] firNum = String.valueOf(fir).split("");
String[] secNum = String.valueOf(numList.get(j)).split("");
if (firNum.length > secNum.length) {
fir = numList.get(j);
}
if (firNum.length == secNum.length) {
if (Integer.parseInt(firNum[0]) > Integer.parseInt(secNum[0])) {
fir = numList.get(j);
}
}
}
}
result.append(fir);
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交