把数组排成最小的数

45. 把数组排成最小的数 我们将数组中的数字转换为字符串,然后按照字符串拼接的大小进行排序。具体地,比较两个字符串aaa和bbb,如果abbaabba,则aaa小于bbb,否则aaa大于bbb。时间复杂度On×log⁡nn×mOn×lognn×m,空间复杂度On×mOn×m。其中 $n $ 和mmm分别为数组的长度和字符串的平均长度。tabs:start。 阅读详情
题目

剑指offer 45 把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

总结

方法一:用优先队列进行排序

自定义一种字符串比较的规则,进行排序。

时间复杂度为O(n)。

public class Solution {
    public String PrintMinNumber(int [] numbers) {
        if (numbers.length == 0) {
            return "";
        }
        
        // 新建一个比较器,用该比较器实现一个优先队列
        Comparator<String> queueComparator = new numComparator();
        PriorityQueue<String> priorityQueue = new PriorityQueue<>(numbers.length, queueComparator);

        for (int i = 0; i < numbers.length; i++) {
            priorityQueue.add(String.valueOf(numbers[i]));
        }

        StringBuilder str = new StringBuilder();
        for (int i = 0; i < numbers.length; i++) {
            str.append(priorityQueue.remove());
        }

        return str.toString();
    }

    class numComparator implements Comparator<String> {
        @Override
        public int compare(String x, String y) {
            return (x+y).compareTo(y+x);
        }
    }
}
SAP PP模块MRP控制参数实战指南:从NETCH到NEUPL的深度解析 本文深入解析SAP PP模块中MRP控制参数的配置与应用,涵盖NETCH、NETPL和NEUPL三种运行模式的优化策略。通过实战案例和参数对比,帮助用户提升物料需求计划的效率和准确性,优化库存周转率和生产交付能力。 阅读详情

相关推荐

小案例:利用图床自动化批量上传图片并获取图片链接

用python爬虫写了一个小脚本,用来自动上传图片到图床,然后返回链接,我们只需直接复制链接就可以。(需要安装Requests库) 因为不同图床需要提交的POST表单不一致,所以在这里我用ImgURL图床做示范,如果大家有需求,可自行修改代码。使用脚本的时候,我们只需把需要上传的图片和这个脚本放在同一个文件夹中,然后运行脚本,稍作等待,看到提示时就可以在脚本运行文件夹中发现一个名为“图片链接地址.txt”的文件,里面就是图片链接啦! 四、图片链接地址.txt(单张图片):...

采菊东篱下,Python满乾坤! 4409

[剑指Offer] 45. 把数组排成最小的数(优先队列重载)

2021/4/5,记录一下学到了优先队列的重载: 思路很简单,就排序就行了,先把数字转换成字符串,然后比较他们的先后顺序组成的数字哪个大就行了。 一开始用了sort自定义排序,然后用了优先队列的重载(学到了优先队列重载的是小于号,我一开始用的大于号一直报错hh) sort自定义排序代码: class Solution { public: static bool cmp(int a,int b) { string x=to_string(a)+to_string(b); string y=

qq_43695986的博客 168

智能车竞赛轮腿穿越组:GPS+IMU导航绕桩实战技巧(附避坑指南)

本文详细介绍了智能车竞赛轮腿穿越组中GPS+IMU导航绕桩的实战技巧,包括硬件选型、传感器标定、路径规划及多传感器数据融合策略。通过实际案例和避坑指南,帮助参赛队伍提升导航精度和稳定性,避免常见错误。特别强调IMU安装位置和标定对导航系统的重要性。

gin88的博客 583

剑指 Offer 45. 把数组排成最小的数(自定义比较器+小顶堆)

剑指 Offer 45. 把数组排成最小的数 问题描述 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: [3,30,34,5,9] 输出: "3033459" 提示: 0 < nums.length <= 100 说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数 拼接起来的数字可能会有前导 0,最后结果不需要去掉前导...

张某某。的博客 205

SSD性能测试进阶:用fio的io_uring引擎榨干你的NVMe硬盘

本文深入探讨了如何利用fio的io_uring引擎对NVMe SSD进行深度性能测试。通过对比传统libaio引擎,详解了io_uring低开销、高并发的优势。文章提供了从测试矩阵设计、队列深度分析到写入放大观察和尾延迟可视化的完整进阶方法,并附有实战案例与脚本,旨在帮助用户科学压榨NVMe硬盘的极限性能,获取更真实的评估数据。

weixin_29247219的博客 326

《FPGA DDR3权威实战:从基础到高速故障录波系统》专栏导览:从不知所措到心中有数

本文是一份DDR3实战指南,作者从自身学习经历出发,分享了一套循序渐进的DDR3应用路线图。专栏包含12篇文章,从基础配置(MIG IP核、AXI总线)、仿真测试到实际项目应用(功能测试、性能测试),最后深入原生MIG接口实战,通过一个高速故障录播系统案例完整展示DDR3开发流程。文章特别强调实践性,旨在帮助读者系统掌握DDR3开发技能,避免作者当年踩过的坑。每篇都配有优快云链接,适合FPGA开发者按顺序学习参考。

FPGA_小田老师的博客 331

牛客题解 | 把数组排成最小的数

牛客题库题解

wc529065的博客 986

基于GA-BP遗传算法优化神经网络的多输入多输出数据预测-Python代码实现

多输入多输出的GA-BP神经网络

2301_80449389的博客 2306

数组排成最小的数

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 这一的本意就是重写排序的比较函数 import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; ...

weixin_38114913的博客 210

【无人机项目实战】第三章:fast_planner工程解读(附C++代码)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、规划系统运行逻辑【业务部分】1.Fast_planner_node.cpp【程序入口】功能代码实现2.kino_replan_fsm.cpp【状态机转移】功能代码实现KinoReplanFSM::init()函数订阅目标点回调函数订阅里程计回调函数检查路径规划是否成功【重要】执行状态机FSM定时器回调函数【重要】判断目标点是否有障碍物或者是轨迹执行过程中是否有障碍物的回调函数3

qq_35635374的博客 1万+

YOLOv11 改进 - 注意力机制 | HaloNet 局部自注意力 (Local Self-Attention) 以分块交互策略实现高效全局上下文建模

本文介绍了局部自注意力机制(HaloAttention)在YOLOv11中的结合应用。局部自注意力通过关注输入数据局部区域来捕捉特征关系,能降低计算复杂度、增强局部特征捕捉,且可与CNN结合。其计算时先定义局部窗口,再计算注意力权重并加权求和。我们将HaloAttention集成到YOLOv11的检测头中,并进行相关注册和配置。实验表明,改进后的模型在目标检测和实例分割等任务中表现更佳,证明了自注意力模型在传统卷积主导领域的有效性。

魔改工程师的博客 1141

47、把数组排成最小的数

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 class Solution { public: static bool cmp(int a, int b){ string tmp1 = to_string(a).appen...

T_or_F的博客 176

Python爬虫实战:高效爬取法律法规数据库的完整指南

本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的法律法规数据库爬虫。我们将从爬虫的基本原理讲起,逐步深入到反爬机制应对、数据解析与存储、性能优化等高级话题。文章包含完整的代码实现,使用requests-html、aiohttp等现代库,以及应对法律数据库特殊结构的处理技巧。通过本文,您将掌握构建专业级法律数据采集系统的全套技能。关键词:Python爬虫、法律法规、数据采集、异步爬虫、反反爬本文详细介绍了使用Python爬取法律法规数据库的完整技术方案。

2201_76125261的博客 1274

数组之把数组排成最小的数

1.本题知识点    数组,大数问题(转成字符串拼接就能解决),自定义排序规则 2. 题目描述   输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 3. 思路    将数组通过某种规则排序,使得排序后的数组元素拼接起来最小,然后打印出来即可。    排序规则:输入a...

守得云开见月明 313

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【转帖】把数组排成最小的数

转自:http://zhedahht.blog.163.com/blog/static/25411174200952174133707/ 题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。 分析:这是09年6月份百度...

angmoci4456的博客 112

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

46.把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组 [3,32,321],则打印出这 3 个数字能排成的最小数字 321323。输入:[3, 32, 321]数组长度 [0,500]。输出数字的格式为字符串。

m0_56312312的博客 178

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

把数组排成最小的数(先定最小的数)

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 import java.util.ArrayList; public class Solution { public String PrintMinNumber(int [] numbers) { Stri...

胖墩的IT博客 298

剑指Offer——把数组排成最小的数

1、题目描述   输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 2、代码实现 package com.baozi.offer; /** * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 * 例如输...

weixin_30802273的博客 78

算法——把数组排成最小的数

输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 leetcode 解题思路:对数组进行重新排序,排序规则是,分别将两个数值放在前后位置,然后比较作为返回。 class Solution { public String minNumber(int[] nums) { PriorityQueue<Integer> q = new PriorityQueue<>((a, b) -> { .

Think Different. 165

校招算法笔面试 | 把数组排成最小的数

牛客题库题解

wc529065的博客 614

把数组排成最小的数 java_牛客网:剑指offer:把数组排成最小的数(java)

我是在牛客上刷的这个题,牛客上的原题是: 我用的方法是先将数组排序,然后用BigInteger判断组合后的整数大小,从而决定组合方式。AC代码如下:import java.util.ArrayList;import java.math.BigInteger;public class Solution {public String PrintMinNumber(int [] numbers) {St...

weixin_33042645的博客 191
上一篇: 连续子数组的最大和
下一篇: 树的子结构
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值