您当前的位置: 首页 >  算法

Phil Arist

暂无认证

  • 1浏览

    0关注

    276博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

算法修炼32、把数组排成最小的数

Phil Arist 发布时间:2021-10-20 09:26:38 ,浏览量:1

 题目描述:

  输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

  解题思路:

  本题最直观的解法就是求出数组中所有数字的全排列,然后比较所有的排列,最后找到最小的排列,但是时间复杂度为O(n!),所以不是一个好的解法。

  换一种思路可以发现,本题实际上希望我们找到一个排序规则,数组根据这个排序规则进行重排之后可以连成一个最小的数字。要确定这样的排序规则,也就是对于两个数字m和n,通过一个规则确定哪个应排在前面。

  根据题目要求,我们可以发现,两个数字m和n能拼接成mn和nm,如果mn

关注
打赏
1662360869
查看更多评论
立即登录/注册

微信扫码登录

0.0397s