【算法】整数序列拼接最大数
给定一组非负整数,怎么拼成一个最大的数
思路如下:
- 将非负整数转换为字符串形式,以便进行比较和拼接。
- 编写一个比较函数,用于比较两个整数字符串的大小。比较规则是,如果拼接字符串 a + b 大于拼接字符串 b + a,则认为 a 大于 b。
- 对给定的整数列表进行排序,排序规则是使用比较函数进行比较。这将确保将较大的整数放在拼接结果的前面。
- 将排序后的整数字符串依次拼接起来,形成最大的数。
public static void main(String[] args) {
// 输入格式:9 10 6
Scanner in = new Scanner(System.in);
String[] strs=in.nextLine().split(" ");
String collect = Arrays.stream(strs)
.sorted(((o1, o2) -> (o2 + o1).compareTo(o1 + o2)))
.collect(Collectors.joining());
// 输出格式:9610
System.out.print(collect);
}
ps:力扣题目链接
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果