题目
思路
- 用一个stringbuild,排序后传入?
- 润去题解,其中排序思想是精华,即根据「结果」来决定 a 和 b 的排序关系:如果拼接结果 ab 要比 ba 好,那么我们会认为 a 应该放在 b 前面。
代码
public String largestNumber(int[] nums) {
int n = nums.length;
String[] ss = new String[n];
//把nums转化为string加入数组
for(int i=0;i<n;i++) ss[i]=""+nums[i];
//排序
Arrays.sort(ss,(o1,o2)->{
String sa = o1+o2;
String sb = o2+o1;
return sb.compareTo(sa);
});
StringBuilder sb = new StringBuilder();
for(String s:ss) sb.append(s);
//有可能出现00结果
if(sb.charAt(0)=='0') return "0";
return sb.toString();
}