把数组排成最小的数

把数组排成最小的数

http://www.nowcoder.com/questionTerminal/8fecd3f8ba334add803bf2a06af1b993

/**
* 解题思路:此题其实是冒泡排序的变种
* 比较的不是前后两个元素s1和s2的大小,而是s1+s2和s2+s1的大小,哪个元素放前面的组合更小,就酱这个元素排前面
**/ 
public String PrintMinNumber(int [] numbers) {
    if(numbers == null || numbers.length == 0) {
        return "";
    }
    int temp;
    for(int i = 0; i < numbers.length; i++) {
        for(int j = i + 1; j <numbers.length; j ++) {
            if(Integer.valueOf(numbers[i] + "" + numbers[j]) > Integer.valueOf(numbers[j] + "" + numbers[i])) {
                temp = numbers[i];
                numbers[i] = numbers[j];
                numbers[j] = temp;
            }
        }
    } 
    StringBuilder builder = new StringBuilder();
    for(int n : numbers) {
        builder.append(n);
    }
    return builder.toString();
}
全部评论

相关推荐

是秃子总会发光_:科软的还被排序?不是大雪深埋吗
点赞 评论 收藏
分享
仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务