欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

最大数-贪心

时间:2023-06-11

题目

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。

示例

输入:nums = [3,30,34,5,9]
输出:“9534330”

算法

先把整数数组转换为字符串数组,然后写一个比较器,比较规则是两个字符串拼在一起后,谁大谁在前面。然后调用比较方法。

代码

class Solution { public String largestNumber(int[] nums) { int n = nums.length; String[] str = new String[n]; for (int i = 0; i < n; i++) { str[i] = String.valueOf(nums[i]); } Arrays.sort(str, (a,b)->{ return (b+a).compareTo(a+b); }); if (str[0].equals("0")) { return "0"; } StringBuilder sb = new StringBuilder(); for (String s : str) { sb.append(s); } return sb.toString(); }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。