1. 程式人生 > >劍指offer -- 把陣列排成最小的數

劍指offer -- 把陣列排成最小的數

題目描述

輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。

AC程式碼

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Solution {
    public String PrintMinNumber(int [] numbers) {
       StringBuilder sb =
new StringBuilder(); List<String> list = new ArrayList<>(); for(int number : numbers) list.add(number + ""); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return
(o1 + o2).compareTo((o2 + o1)); } }); for(String s : list) sb.append(s); return sb.toString(); } }