您的位置:首页 > 其它

数字的最大组合

2015-09-02 14:45 302 查看
重新排列数字中的每位,得到最大的数字

例如:

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: