题解 | #把数组排成最小的数#

把数组排成最小的数

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

import java.util.ArrayList;

public class Solution {
    public String PrintMinNumber(int [] numbers) {
        
        if (0 == numbers.length) {
            return "";
        }
        if (1 == numbers.length) {
            return "" + numbers[0];
        }
        
        quickSort(numbers, 0, numbers.length - 1);
        StringBuffer sb = new StringBuffer("");
        for (int num : numbers) {
            sb.append(num);
        }
        return new String(sb);
    }
    
    public void quickSort(int[] numbers, int start, int end) {
        if (start >= end) {
            return;
        }
        int l = start - 1;
        int r = end + 1;
        int p = start;
        int val = numbers[end];
        while (p < r) {
            if (whoBig(numbers[p], val) == -1) { // 小于
                int swap = numbers[p];
                numbers[p] = numbers[l + 1];
                numbers[l + 1] = swap;
                l++;
                p++;
            }
            else if (whoBig(numbers[p], val) == 1) { // 大于
                int swap = numbers[p];
                numbers[p] = numbers[r - 1];
                numbers[r - 1] = swap;
                r--;
            }
            else {
                p++;
            }
        }
        quickSort(numbers, start, l);
        quickSort(numbers, r, end);
    }
    
    public int whoBig(int num1, int num2) {
        String str1 = "" + num1 + num2;
        String str2 = "" + num2 + num1;
        for (int i = 0; i < str1.length(); i++) {
            if (str1.charAt(i) < str2.charAt(i)) {
                return -1;
            }
            else if (str1.charAt(i) > str2.charAt(i)) {
                return 1;
            }
        }
        return 0;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 12:10
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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