题目:
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 1:
输入: [10,2]
输出: 210
示例 2:
输入: [3,30,34,5,9]
输出: 9534330
说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。
题解:
import java.util.*;
/**
* @Author dfpeng
* @Date 2019/7/24
*/
public class Solution {
public static String largestNumber(int[] nums) {
if (nums.length==0){
return "";
}
List<Integer> list=new ArrayList<>();
for (int i = 0; i <nums.length ; i++) {
list.add(nums[i]);
}
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
String s1=o1+""+o2;
String s2=o2+""+o1;
return s2.compareTo(s1);
}
});
StringBuilder sb=new StringBuilder();
boolean first=true;
for (Integer i:list) {
if (first&&i==0){
continue;
}else{
first=false;
sb.append(i);
}
}
return sb.toString().equals("")?"0":sb.toString();
}
public static void main(String[] args) {
System.out.println(largestNumber(new int[]{10,2}));
}
}