剑指 Offer 45. 把数组排成最小的数

题目描述:

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

示例 1:
输入: [10,2]
输出: “102”

示例 2:
输入: [3,30,34,5,9]
输出: “3033459”

提示:

说明:

Arrays.sort()中如果使用自定义比较器Comparator:规则是对于参与比较的两个元素(a,b)而言,若返回值为正数则说明发生交换,当前比较器规则为(b+a).compareTo(a+b),如果大于0,Comparator接收返回值为正数,就会交换a和b。

compareTo(String, anotherString) :按字典顺序比较两个字符串。

代码如下:

class Solution {public String minNumber(int[] nums) {if (nums == null || nums.length == 0) {return "";}String[] str = new String[nums.length];for (int i = 0; i < str.length; i++) {str[i] = String.valueOf(nums[i]);}Arrays.sort(str, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return (o1 + o2).compareTo((o2 + o1));}});StringBuilder sb = new StringBuilder();for (String s : str) {sb.append(s);}String result = sb.toString();return result;}
}

执行结果:

最大数

题目描述:

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

注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。

示例 1:
输入:nums = [10,2]
输出:“210”

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

示例 3:
输入:nums = [1]
输出:“1”

示例 4:
输入:nums = [10]
输出:“10”

提示:

代码如下:

class Solution {public String largestNumber(int[] nums) {if (nums == null || nums.length == 0) {return "";}String[] str = new String[nums.length];for (int i = 0; i < str.length; i++) {str[i] = String.valueOf(nums[i]);}Arrays.sort(str, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return (o2 + o1).compareTo((o1 + o2));}});StringBuilder sb = new StringBuilder();for (String s : str) {sb.append(s);}String result = sb.toString();if (result.charAt(0) == '0') {result = "0";}  return result;}
}

执行结果:

最大数和最小数(排序)相关推荐

  1. 对整个矩阵元素进行计算:最大数、最小数、排序

    matlab的最大数和最小数,当然就是max和min了,这个大小都很清楚.但是这两个函数(其实还有一类这样的函数,比如sort)都有一个特点:都是以列为单位进行计算的. 下面的例子可以说明 >& ...

  2. 同时寻找最大数和最小数的最优算法 第二大数

    我们知道,在一个容量为n的数据集合中寻找一个最大数,不管用什么样的比较算法,至少要比较n-1次,就算是用竞标赛排序也得比较n-1次,否则你找到的就不能保证是最大的数.那么,在一个容量为n的数据集合中同 ...

  3. C语言实例第4期:交换数组中最大数和最小数的位置

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  4. python求一组数的最大值_用python实现在一组数据中,寻找到最大数和最小数并输出最大数和最小数所在的位置...

    题目 定义一个实数数组,数组的元素个数不低于十个,且存在重复的最大值和最小值. (1).编写python程序用for循环或while循环找出这些数中的最大数和最小数: (2).找出最大数和最小数的在改 ...

  5. 输入一批整数,以0为结束标志,找出最大数和最小数所在的位置,并把二者对调

    第1关:输入一批整数,以0为结束标志,找出最大数和最小数所在的位置,并把二者对调 任务描述 本关任务:输入一批整数,最多不超过100个,以 0 为结束标志,找出最大数和最小值所在的位置,并把二者对调, ...

  6. 用python实现在一组数据中,寻找到最大数和最小数并输出最大数和最小数所在的位置

    题目 定义一个实数数组,数组的元素个数不低于十个,且存在重复的最大值和最小值. (1).编写python程序用for循环或while循环找出这些数中的最大数和最小数: (2).找出最大数和最小数的在改 ...

  7. 移动火柴棍生成最大数和最小数

    题目: 编写程序为火柴棍摆成的任意自然数生成一个最大数和最小数 原题:用火柴棍摆成自然数"1995",移动任意一根火柴得到最大数和最小数分别是多少. 程序结果: 火柴数字参考图: ...

  8. 编写一个汇编语言程序,有一个50个数据的数据区,找出最大数和最小数,分别存放在AX和BX寄存器中

    [微机原理]-汇编题 编写一个汇编语言程序,有一个50个数据的数据区,找出最大数和最小数,分别存放在AX和BX寄存器中. DATA SEGMENT NUM DB 21H,34,23H...DATA E ...

  9. 习题5.2 从键盘输入n个数,求这n个数中的最大数与最小数并输出。

    Java程序设计基础(第5版) 陈国君 清华大学出版社 个人设计 习题5.2 从键盘输入n个数,求这n个数中的最大数与最小数并输出. 代码块: package App; import java.uti ...

最新文章

  1. Xor Path - 牛客
  2. Python学习路程day18
  3. JS循环绑定对象或变量
  4. POJ - 1201 Intervals(差分约束+最短路)
  5. druid监控配置及sql注入防火墙配置
  6. python代码转换为pytorch_pytorch使用 to 进行类型转换方式
  7. 计算机网络 原理与实验指导书,《计算机网络原理》实验指导书.doc
  8. 一个好用的在线微信二维码设计网站
  9. 模板题——贪心(2)
  10. Glide 加载圆角图片(解决设置圆角后和centerCrop冲突的问题)
  11. java毕业设计培训学校教学管理平台源码+lw文档+mybatis+系统+mysql数据库+调试
  12. Flow-Guided-Feature-Aggregation-的安装配置,demo运行,以及采用少量ILSVRC2015 VID数据集在其中训练
  13. php滑动拼图验证,如何在PHP环境下实现滑动拼图验证
  14. 动图文件太大怎么办?一招教你在线压缩GIF图片
  15. 拿好这份踏青攻略,智慧出游领略大好河山!
  16. 深入理解机器学习——机器学习概览
  17. 安防摄像机手机直播方案介绍
  18. 南理工紫金单片机课程设计
  19. 年轻程序员与老程序员的对话
  20. virtualbox 开启虚拟化支持kvm VT-x/AMD-V 功能

热门文章

  1. 国内ip地址 透明代理
  2. C语言中的制表符\t
  3. 微信小程序开发跳坑指南(51-100)
  4. CentOS 7 不显示ip
  5. react-to-vue使用教程
  6. php计算四柱(生辰八字)
  7. C# 获取字符串字节长度
  8. 腾讯内部推出”Netty速成手册“,三天走向实战,面试不是洒洒水?
  9. Nginx 入门学习
  10. Web 攻防之业务安全:登录失败信息测试.