算法:把数组排成最小的数
生活随笔
收集整理的這篇文章主要介紹了
算法:把数组排成最小的数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
* @Description 把數組排成最小的數
* @問題:輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。
* 例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字為321323。
* @思路:
* 1:將數組轉化為list;
* 2:對list進行排序,重寫compara構造方法,最小排序;
* 3:對排序后的list進行累加; jdk中關于重寫compare方法:
* @問題:輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。
* 例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字為321323。
* @思路:
* 1:將數組轉化為list;
* 2:對list進行排序,重寫compara構造方法,最小排序;
* 3:對排序后的list進行累加; jdk中關于重寫compare方法:
?
compareTo方法::?
?
?
?
package LG.nowcoder;import java.util.ArrayList; import java.util.Collections; import java.util.Comparator;/*** @Author liguo* @Description 把數組排成最小的數* @問題:輸入一個正整數數組,把數組里所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。* 例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字為321323。* @思路:* @Data 2018-08-17 8:57*/ public class Solution13 {public String PrintMinNumber(int [] numbers) {int n;String s="";ArrayList<Integer> list=new ArrayList<Integer>();n=numbers.length;for(int i=0;i<n;i++){list.add(numbers[i]);//將數組放入arrayList中 }//實現了Comparator接口的compare方法,原來的compare方法是從小到大排序,所以需要重寫;//將集合元素按照compare方法的規則進行排序Collections.sort(list,new Comparator<Integer>(){@Overridepublic int compare(Integer int1, Integer int2) {String s1=int1+""+int2;String s2=int2+""+int1;return s1.compareTo(s2) ; //對于string進行從小到大的排序; }});for(int j:list){s+=j;}return s;} }?
?
轉載于:https://www.cnblogs.com/liguo-wang/p/9491557.html
總結
以上是生活随笔為你收集整理的算法:把数组排成最小的数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Taro+react开发(97):问答模
- 下一篇: cad插件_CAD插件三领外挂7