33:把数组排成最小的数
生活随笔
收集整理的這篇文章主要介紹了
33:把数组排成最小的数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/*** 面試題33:把數(shù)組排成最小的數(shù)* 輸入一個正整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個數(shù),打印能拼接出的所有數(shù)字中最小的一個。* 例如輸入數(shù)組{3,32,321},則打印出這三個數(shù)字能排成的最小數(shù)字為321323。*/
public class _33_min_array {public static void main(String[] args) {Solution33 solution33 = new Solution33();int[] numbers={3,32,321};System.out.println(solution33.PrintMinNumber(numbers));}
}
class Solution33 {public String PrintMinNumber(int [] numbers) {StringBuilder sb1=new StringBuilder("");if(numbers.length==0){return sb1.toString();}StringBuilder sb2=new StringBuilder("");StringBuilder result=new StringBuilder();for(int i=0;i<numbers.length-1;i++){for(int j=i+1;j<numbers.length;j++){sb1.append(numbers[i]);sb1.append(numbers[j]);sb2.append(numbers[j]);sb2.append(numbers[i]);if(sb1.toString().compareTo(sb2.toString())>0){int tmp=numbers[i];numbers[i]=numbers[j];numbers[j]=tmp;}sb1.delete(0, sb1.length());sb2.delete(0, sb2.length());}}for(int k=0;k<numbers.length;k++){result.append(numbers[k]);}return result.toString();}
}
轉(zhuǎn)載于:https://www.cnblogs.com/andy-zhou/p/6549957.html
總結(jié)
以上是生活随笔為你收集整理的33:把数组排成最小的数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。