题目形容
输出一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
示例
输出: [3,30,34,5,9]输入: "3033459"
解题思路
本题的关键在于排序的判断
1、 a + b > b + a ====> a > b, a 在 b 的前面
2、 a + b < b + a ====> b < a, a 在 b 的后面
思路一:
1、将所有数组的数值都转换为对应的字符串; 2、应用Array.sort()重写比拟器,后应用 a + b > b + a来进行快排,应用字符串的compareTo()进行比拟; 3、应用StringBuilder把排序后的字符串数组串起来;
思路二:
1、将所有数组的数值都转换为对应的字符串; 2、本人重写快排,在快排中,用两指针从收尾同时进行搜寻 3、应用StringBuilder把排序后的字符串数组串起来;
思路三:
1、将所有数组的数值都转换为对应的字符串; 2、本人重写快排,在快排中,用两指针同时从数组起始地位开始搜寻,当快指针找到<= r的值时,进行swap,最初wap 参考值r和慢指针停留的地位 3、应用StringBuilder把排序后的字符串数组串起来;
思路四:
1、应用整数进行疾速排序 2、排序算法: a*(10的(b的长度次方)) + b vs b*(10的(a的长度次方)) + a =======> 后果和数组模式的 a + b > b + a 统一,应用double来承接 3、应用StringBuilder把排序后的字符串数组串起来;
语言积攒
1、Array.sort()办法中的对比起的重写
Array.sort(data[], new comparator<>(){ public int compare(data1, data2){ return int }});
2、String.compareTo()
3、各种类型的转换
String.valueOf(); Integer.valueOf();
vscode链接
https://github.com/lunaDolphin/leetcode/tree/master/queue_offer_45
https://github.com/lunaDolphin/leetcode/tree/master/queue_offer_45_1
https://github.com/lunaDolphin/leetcode/tree/master/queue_offer_45_2
https://github.com/lunaDolphin/leetcode/tree/master/queue_offer_45_3