1. 程式人生 > >面試題:把數組排成最小的數

面試題:把數組排成最小的數

compare clas 一個 pub tor str 所有 重點 最小

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

重點是重寫Comparator函數

代碼:

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Arrays;
public class Solution {
    public String PrintMinNumber(int [] numbers) {
        if(numbers==null||numbers.length==0) return
""; int len=numbers.length; String[] str=new String[len]; StringBuffer sb=new StringBuffer(); for(int i=0;i<len;i++){ str[i]=String.valueOf(numbers[i]); } //重寫Comparator函數 Arrays.sort(str,new Comparator<String>(){
public int compare(String s1,String s2){ String c1=s1+s2; String c2=s2+s1; return c1.compareTo(c2); } }); for(int i=0;i<len;i++){ sb.append(str[i]); } return sb.toString(); } }

面試題:把數組排成最小的數