Lintcode379 Reorder array to construct the minimum number solution 题解

【题目描述】

Construct minimum number by reordering a given non-negative integer array. Arrange them such that they form the minimum number.

Notice:The result may be very large, so you need to return a string instead of an integer.

给定一个整数数组,请将其重新排序,以构造最小值。

【注】:结果可能非常大,因此你需要返回一个字符串而不是一个整数。

【题目链接】

www.lintcode.com/en/problem/reorder-array-to-construct-the-minimum-number/

【题目解析】

这道题关键在于字符串两两之间的大小比较以及排序算法。

这里排序算法用Java底层用归并实现的Arrays.sort,能将排序的时间复杂度控制在O(n*lnon)。

对于字符串的两两比较,按照我们这道题的思路,我们需要比较的是两两字符串s1,s2拼接是s1拼s2还是s2拼s1大,根据这句话,我们就可以直接通过比较s1+s2和s2+s1的字符序大小来得到我们的结果。

因为是要求最小的数,所以可能0会出现在最后拼接成的字符串最前面,我们需要把前导0去掉。

【参考答案】

www.jiuzhang.com/solutions/reorder-array-to-construct-the-minimum-number/

你可能感兴趣的:(Lintcode379 Reorder array to construct the minimum number solution 题解)