数字的最大组合

 

重新排列数字中的每位,得到最大的数字

例如:

1234 -》 4321

1230 -》 3210

1122 -》 2211

想法就是对每位重新排序,从大到小输出,因为每位的可能性只有从0-9,10种可能,所以可以使用桶排序

public static int reRange(int num) {
    int ret = 0;
    // 每一位数字
    int[] s = new int[10];
    while (num > 0) {
        s[num%10]++;
        num = num / 10;
    }
    for (int i=9; i> -1; i--) {
        while (s[i] > 0) {
            ret = ret * 10 + i;
            s[i]--;
        }
    }
    return ret;
}

 

posted @ 2015-09-02 14:45  23lalala  阅读(364)  评论(0编辑  收藏  举报