package top.buukle.buukle.排序类;
import java.util.Arrays;
public class 最大拼接数 {
//给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。
//
// 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
//
//
//
// 示例 1:
//
//
//输入:nums = [10,2]
//输出:"210"
//
// 示例 2:
//
//
//输入:nums = [3,30,34,5,9]
//输出:"9534330"
//
//
// 示例 3:
//
//
//输入:nums = [1]
//输出:"1"
//
//
// 示例 4:
//
//
//输入:nums = [10]
//输出:"10"
//
//
//
//
// 提示:
//
//
// 1 <= nums.length <= 100
// 0 <= nums[i] <= 109
//
// Related Topics 排序
// 👍 722 👎 0
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
// 数字拼接最大值,转换成字符串拼接即可
public String largestNumber(int[] nums) {
// 处理null
if(nums == null){
return "0";
}
Integer[] s = new Integer[nums.length];
for (int i = 0; i < nums.length; i++) {
s[i] = nums[i];
}
Arrays.sort(s,(v1, v2)->{
String v1s = v1 + "" + v2;
String v2s = v2 + "" + v1;
return v2s.compareTo(v1s);
});
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length; i++) {
sb.append(s[i]);
}
String resStr = sb.toString();
int k = 0;
while(k<s.length -1 && resStr.charAt(k) == '0'){
k++;
}
return resStr.substring(k);
}
}
//leetcode submit region end(Prohibit modification and deletion)
}
版权归属:
administrator
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
>
评论区