【题目】:

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。

【示例】:

例如输入数组{332321},则打印出这三个数字能排成的最小数字为321323

思路:
这道题比较简单,比较组成数字的大小即可;
注意点:

  • 比较的是结合后的数字,
  • 在int[]和string[]的转换

【关键点】: 数组,字符串拼接

【Java】:

import java.util.ArrayList;
import java.util.Arrays;//数组排序
import java.util.Comparator;//比较首字符的大小(按ASCII码顺序)public class Solution {public String PrintMinNumber(int [] numbers) {if(numbers == null || numbers.length == 0) return "";int len = numbers.length;String[] str = new String[len];//结果for(int i = 0; i < len; i++){str[i] = String.valueOf(numbers[i]);//将数组int转存string类型}Arrays.sort(str,new Comparator<String>(){//因为3小于31,所以不能直接比较,需要拼接后比较@Override//重写sort排序方法(比较的是字符串拼接后的数字)public int compare(String s1, String s2) {//比较的在字母表中的顺序String c1 = s1 + s2;String c2 = s2 + s1;return c1.compareTo(c2);//c1和c2比较差值,返回差值}});StringBuilder sb = new StringBuilder();//暂存可变字符串for(int i = 0; i < len; i++){sb.append(str[i]);//将str[]数组拼接为字符串}return sb.toString();//sb转string}
}

【Java面试题】把数组排成最小的数相关推荐

  1. 面试题45. 把数组排成最小的数

    题目: 面试题45. 把数组排成最小的数 题解: 1. 题解一: 2. 题解二: * 解题思路:* 先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来.关 ...

  2. 33:把数组排成最小的数

    /*** 面试题33:把数组排成最小的数* 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这三个数字能排成的 ...

  3. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

    一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...

  4. 算法:把数组排成最小的数

    * @Description 把数组排成最小的数* @问题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这 ...

  5. 【LeetCode】剑指 Offer 45. 把数组排成最小的数

    [LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...

  6. printf打印数组_(45)C++面试之把数组排成最小的数

    // 面试题45:把数组排成最小的数 // 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼 // 接出的所有数字中最小的一个.例如输入数组{3, 32, 321},则打印出这3 ...

  7. 【剑指offer-Java版】33把数组排成最小的数

    把数组排成最小的数 难点在于比较规则的确定以及比较规则的正确性证明 比如:仅仅是局部的两个数字的顺序较小,如何保证整个数组按此规则进行排序后达到全局的较小 书中关于这一点的证明直接用的反证法,忘的差不 ...

  8. 数据结构与算法--将数组排成最小的数

    将数组排成最小的数 题目:输入一个正整数的数组,将数组中所有数字拼接在一起排列成一个新的数,打印能拼接出来的所有数字中最小的一个, 案例:输入数组{12,4,55},则能打印出最小的数组是:12455 ...

  9. 列表转化成数组_30. 把数组排成最小的数

    把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为3213 ...

  10. 剑指 Offer 笔记: T45. 把数组排成最小的数

    T45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" ...

最新文章

  1. mysql数据库表的管理(增删改)
  2. SVN 版本控制的数据合并规则
  3. 程序员python工作_程序员如何在工作中进步
  4. php打印订单,WooCommerce: 打印订单
  5. Iris数据集神经网络训练
  6. 热力地图高德_调用高德地图API(热力图)详解
  7. sql server (sqlexpress) 服务因 3417 (0xd59) 服务性错误而停止(转自太原市李江软件开发工作室)...
  8. 揭秘跨境电商亚马逊店铺最新骗局!!小白做亚马逊店铺如何防止上当受骗?
  9. The following packages will be SUPERCEDED by a higher-priority channel是什么意思?
  10. 木瓜移动创始人沈思专访——从平台到孵化器
  11. 2021查询高考成绩提前批分数线,快看看!2021高考部分省市“预测分数线”出炉!两点需要注意...
  12. 服务注册中心如何选型
  13. 【GCC】2: RTCP cc-feeback 抓包对比协议
  14. slope one predictors
  15. win10接USB设备(移动硬盘扫码枪之类)蓝屏问题处理
  16. 详解各种各样的 “BW” —OBW,IBW ,RBW,VBW
  17. SUMO 交通小区 OD流量建模 OD转换交通流
  18. 一文读懂智慧高速车路协同现状与未来(附现状合集)
  19. 在Win10任务栏上添加文字
  20. Qt常用控件介绍(一)

热门文章

  1. 400多万微信用户如何“变现”?凯叔说了五大秘诀与教训
  2. 逃出996,追逐新目标!
  3. 基于SDWAN的智能选路技术实现
  4. 郎平,你回来会毁了中国女排!
  5. UDC分类号查询(转载)
  6. java超市收银系统mysql,java课程设计(含数据库代码)
  7. 关于新冠肺炎(COVID-19)论文解读集合
  8. Java 基础学习-Java语言概述
  9. 关于OpenCV for Python入门-dlib实现人脸检测
  10. 论文翻译:Speech Super Resolution Generative Adversarial Network