数组组成的最小数字
标题:数组组成的最小数字 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
给定一个整型数组,请从该数组中选择3个元素组成最小数字并输出(如果数组长度小于3,则选择数组中所有元素来组成最小数字)。
import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); String[] split = str.split(","); int[] newArr = null; if (split.length < 3) { newArr = new int[split.length]; for (int i = 0; i < split.length; i++) { newArr[i] = Integer.parseInt(split[i]); } } else { int[] intArr = new int[split.length]; for (int i = 0; i < split.length; i++) { intArr[i] = Integer.parseInt(split[i]); } Arrays.sort(intArr); newArr = Arrays.copyOf(intArr, 3); } String minCombine = printMinNumber(newArr); System.out.println(minCombine); } private static String printMinNumber(int[] newArr) { if (newArr == null || newArr.length == 0) { return ""; } int length = newArr.length; String[] strArr = new String[length]; for (int i = 0; i < length; i++) { strArr[i] = String.valueOf(newArr[i]); } StringBuilder sb = new StringBuilder(); Arrays.sort(strArr, new Comparator<String>() { @Override public int compare(String o1, String o2) { String c1 = o1 + o2; String c2 = o2 + o1; return c1.compareTo(c2); } }); for (int i = 0; i < length; i++) { sb.append(strArr[i]); } return sb.toString(); } }