最大数:
给定一个数组由一些非负整数组成,现需要将他们进行排列并拼接,使得最后的结果最大,返回值需要是string类型 否则可能会溢出。
30,304的排列为:30430
30,301的排列为30301,
对于两个数字,可以比较他们排列之后的ASSCAL值。选择阿斯克码值大的排在前面。
import java.util.*;
public class Solution {
/**
* 最大数
* @param nums int整型一维数组
* @return string字符串
*/
public String solve (int[] nums) {
// write code here
int n=nums.length;
String numsToword[] =new String[n];
for(int i=0;i<n;i++){
numsToword[i]=String.valueOf(nums[i]);
}
Arrays.sort(numsToword,(a,b)->{
return (b+a).compareTo(a+b);
});
if(numsToword[0].equals("0")){
return "0";
}
StringBuilder sb=new StringBuilder();
for(int i=0;i<n;i++){
sb.append(numsToword[i]);
}
return sb.toString();
}
}