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

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

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

第一步变化成数组看来是必须的,但第二步排序的方法可以优化,因为排序对象都是个位数,所以只需要遍历一遍数组,将每个数字出现的次数统计出来,再生成结果,这样复杂度会降低

展开全部 4 讨论