题目描述
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
示例1:
输入: [10,2]
输出: "102"
示例2
输入: [3,30,34,5,9]
输出: "3033459"
限制
0 < nums.length <= 100
Leetcode链接:剑指offer面试题45:把数组排成最小的数
算法分析
- 将int数组转化为string数组后,对数组进行排序。排序规则为若a + b > b + a,则a > b,否则 b > a。排序结束将字符串按顺序拼接即可。
复杂度分析
问题规模为数组大小n
- 时间复杂度:O( n l o g n nlogn nlogn),sort.Sort()排序的时间复杂度为nlogn。
- 空间复杂度:O( n