讨论/题目交流/给一个数字,找出能组成的最大数? 比如123465,组成最大的数654321;/
给一个数字,找出能组成的最大数? 比如123465,组成最大的数654321;

求一道题目的做法:给一个数字,找出能组成的最大数? 比如123465,组成最大的数654321;
这道题,我的想法是:
1、for循环将数字一个个取出,组成数组;
2、将数组排序(或者二分查找到index,插入index)
3、再for循环将数组组成数字;

这样是不是太麻烦了,有没有更好的方法

展开讨论

贪心算法可解,计算每两个数拼接起来的数取较大的那种排列情况,这个过程作为 sort 函数的回调,考虑到这题每个数字长度都一样,直接倒序排列即可。

展开全部 4 讨论