原题
https://leetcode-cn.com/problems/largest-number/

思路
1.定义排序函数
2.排序
3.输出结果
题解
package cn.codemao.botmao.admin;
import java.util.Arrays;
import java.util.Comparator;
/**
* @version 1.0
* @author: zhangkun@codemao.cn
* @description:
* @create: 2021-04-12 12:02
**/
public class Code179 {
public static void main(String[] args) {
int[] nums = {3,30,34,5,9};
System.out.println(largestNumber(nums));
}
public static String largestNumber(int[] nums) {
// 1.定义排序函数
// 2.排序
// 3.输出结果
int len = nums.length;
String[] strNums = new String[len];
for (int i = 0; i < len; i++) {
strNums[i] = String.valueOf(nums[i]);
}
Arrays.sort(strNums, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// 3,30 => 3,30
// 3,32 => 3,32
// 3,34 => 34,3
return (o2+o1).compareTo(o1+o2);
}
});
StringBuffer res = new StringBuffer();
if (strNums[0].equals("0")) {
return "0";
}
for (int i = 0; i < len; i++) {
res.append(strNums[i]);
}
return res.toString();
}
}
这篇博客介绍了LeetCode中的一道题目,即如何找到整数数组的最大数字组合。作者提供了思路和解决方案,通过定义一个自定义排序函数,将数字字符串进行比较,然后对数组进行排序,从而得到最大的数字。最后,如果排序后的第一个元素为0,则整个数字组合为0,否则拼接所有元素以得到最大数字。
406

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



