题目:
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
示例 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}));
}
}
本文介绍了一种将非负整数数组重新排列以形成最大整数的方法。通过自定义排序算法,实现对整数的特殊排序,最终组合成最大的整数,并以字符串形式返回结果。
1112

被折叠的 条评论
为什么被折叠?



