先把数组元素转化给字符串集合,然后对集合进行排序。排序规则是例如 1,20 这俩个元素,比较左右拼接的结果 120,201 如果右拼接大于左拼接就交换。最后输出排序后的集合的元素按序拼接的结果。需要注意的是,如果结果以 “0” 开头,直接返回 "0"。
import java.util.*;
public class Solution {
/**
* 最大数
* @param nums int整型一维数组
* @return string字符串
*/
public String solve (int[] nums) {
if(null==nums || nums.length==0)
return null;
// write code here
ArrayList<String> res = new ArrayList<>();
for(int i=0;i<nums.length;i++)
res.add(nums[i]+"");
res.sort((a,b)->(b+a).compareTo(a+b));
String result = "";
for(String e:res){
result+=e;
}
return result.startsWith("0")?"0":result;
}
}