package Second; /** * 题目: * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, * 打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321}, * 则打印出这三个数字能排成的最小数字为321323。 * * 大数问题转换成字符串 */ public class P227_PrintMinNumber { public String PrintMinNumber(int [] numbers) { String result = ""; if (numbers == null || numbers.length == 0) { return result; } for (int i = 0; i < numbers.length; i++) { for (int j = numbers.length - 1; j > i; j--) { int temp = Compare(numbers[i], numbers[j]); if (temp > 0) { int medium = numbers[j]; numbers[j ] = numbers[i]; numbers[i] = medium; } } } for (int j = 0; j < numbers.length; j++) { result += numbers[j]; } return result; } public int Compare(int number1, int number2) { String temp1 = number1 + "" + number2; String temp2 = number2 + "" + number1; return temp1.compareTo(temp2); } public static void main(String[] args){ int[] numbers = {3, 32, 321}; P227_PrintMinNumber test = new P227_PrintMinNumber(); String result = test.PrintMinNumber(numbers); System.out.print(result); } }
剑指offer:把数组排成最小的数(java)
猜你喜欢
转载自blog.csdn.net/Sunshine_liang1/article/details/82843909
今日推荐
周排行