把数组排成最小的数
2020-10-16 21:00
162 查看
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组 {3,32,321},则打印出这三个数字能排成的最小数字为 321323
解题思路
使用字符串的比较器辅助比较数组元素(字符串长度相等时,比较最小索引处的 Unicode 值)
import java.util.List; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class Solution { public String PrintMinNumber(int[] numbers) { List<Integer> list = new ArrayList<>(); for(int i = 0; i < numbers.length; i++) { list.add(numbers[i]); } Collections.sort(list, new Comparator<Integer>() { public int compare(Integer str1, Integer str2) { String s1 = str1 + "" + str2; String s2 = str2 + "" + str1; return s1.compareTo(s2); } }); StringBuilder str = new StringBuilder(); for(Integer num : list) { str.append(num.toString()); } return str.toString(); } }
相关文章推荐
- 交换两个数组使两个数组和的差最小
- 算法学习记录七(C++)--->二分法找有序旋转数组最小值
- 将一个数组划分为和差值最小的子数组
- 求两个有序数组中,各个元素的c差值最小
- 输入一个递增排序的数组(元素不重复)的一个旋转,找其中最小的数
- 算法题:两数组所有和值的最小前 k 项
- 求数组中两个元素的最小距离
- 编写程序,在O(n)时间内从数组x[0..n-1]中找出第k个最小的元素?
- 百度面试题:求一个已排序的数组中绝对值最小的元素
- 面试题33:把数组排成最小的数
- 关于在一个无序数组中的数求最大值和最小值的最小比较次数
- 【手绘漫画】图解LeetCode之寻找旋转排序数组中的最小值 II(LeetCode154题)
- 面试训练把数组排成最小的数
- 【剑指offer】把数组排成最小的数
- nyoj 2340 最小循环节(KMP之next数组的应用)
- 取数组最小值
- 旋转数组的最小数字
- 拼接字符串数组使字典序最小
- 面试题8:旋转数组中的最小数字
- 寻找旋转排序数组中的最小值 II