题目的链接在这里:https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993
- 题目大意
- 一、示意图
- 二、解题思路
- String的知识和compare的知识
题目大意 输入一个正整数数组numbers,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 例如输入数组[3,32,321],则打印出这三个数字能排成的最小数字为321323。
数据范围:
0<=len(numbers)<=100
一、示意图 二、解题思路
String的知识和compare的知识String的知识和compare的知识
代码如下:
import java.util.*;
public class Solution {
public String PrintMinNumber(int [] numbers) {
//把数组中的所有数字都拼接成一排
String s="";
if(numbers.length==0){
return s;
}
String[] strs=new String[numbers.length];
for(int i=0;i() {
@Override
public int compare(String a, String b) {
return (a+b).compareTo(b+a);
}
});
//然后排好序
StringBuilder sb=new StringBuilder();
for(String s1:strs){
sb.append(s1);
}
//然后返回
return sb.toString();
}
}


![java 剑指offer之[数据结构 中等]JZ45 把数组排成最小的数 java 剑指offer之[数据结构 中等]JZ45 把数组排成最小的数](http://www.mshxw.com/aiimages/31/349240.png)
