就记录一下。。不分组整理了
题目
https://leetcode-cn.com/problems/largest-number/
代码
证明?不会证明。
要求最多保留1个前导0,注意去除。
class Solution {
public String largestNumber(int[] nums) {
int n=nums.length;
String[] ss=new String[n];
for(int i=0;i<n;i++)
ss[i]=""+nums[i];
Arrays.sort(ss,new Comparator<String>(){
public int compare(String a,String b){
String ab=a+b;
String ba=b+a;
return ba.compareTo(ab);
}
});
StringBuilder sb=new StringBuilder();
boolean flag=true;//去除前导0
for(int i=0;i<n;i++){
if(ss[i].charAt(0)=='0'){
if(flag){
continue;
}
}
else{
flag=false;
}
sb.append(ss[i]);
}
String res=sb.toString();
//nums长度大于0,必定有数,res为空说明有1个前导0
return res.equals("")?"0":res;
}
}