前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法练习(7) - 最大拼接数

算法练习(7) - 最大拼接数

作者头像
惊羽-布壳儿
发布2022-06-15 16:05:09
3380
发布2022-06-15 16:05:09
举报
文章被收录于专栏:惊羽-布壳儿
代码语言:javascript
复制
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)
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档