package ;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;/*** @Name:* @Description:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。* 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。* @Author: Allen*/
public class SortArrayToMinNum33 {public static void main(String args[]){Scanner scanner = new Scanner(System.in);int length = scanner.nextInt();int intArr[] = new int[length];for(int i=0; i<length; i++){intArr[i]=scanner.nextInt();}Solution33 solution33 = new Solution33();StringOfInt[] stringOfInts=solution33.intToString(intArr);if(stringOfInts.length>0){for(StringOfInt stringOfInt : stringOfInts){System.out.print(stringOfInt.s);}}System.out.println();}
}class Solution33{StringOfInt[] intToString(int[] intArr){if(intArr==null || intArr.length==0){return;}StringOfInt strArr[] = new StringOfInt[intArr.length];for(int i=0; i<strArr.length; i++){strArr[i]=new StringOfInt();strArr[i].s=String.valueOf(intArr[i]);}Arrays.sort(strArr,new StringComparator());//用自定义的比较器进行排序return strArr;}}class StringComparator implements Comparator<StringOfInt>{@Overridepublic int compare(StringOfInt o1, StringOfInt o2) {String s1=o1.s+o2.s;String s2=o2.s+o1.s;int ret=0;if(s1.compareTo(s2)<0){ret=-1;}else if(s1.compareTo(s2)>0){ret=1;}else ret=0;return ret;}
}class StringOfInt{String s;
}

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

  1. python从键盘输入一个数、判断其是奇数还是偶数_从键盘上任意输入一个正数,判断是奇数还是偶数...

    从键盘上任意输入一个4位正整数,然后逆序数输出 intmain(){intn,n1,n2,n3,n4;cin>>n;n1=n/1000;n2=(n%1000)/100;n3=(n%100) ...

  2. python怎么判断一个数是不是正整数_Python如何判断一个正整数是否是素数?

    素数(Prime Number),又称质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数:否则,称为合数(Composite Number).1既不是素数,也不是合数. 如2. ...

  3. 任何一个正整数都可以用2的幂次方表示

    例如:137=2^7+2^3+2^0,约定a^b可表示为a(b),则137可表示为:2(7)+2(3)+2(0),进一步7=2^2+2+2^0,3=2+2^0.所以137最终可以表示为2(2(2)+2 ...

  4. C语言编程>第二周 ⑤ 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    例题:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 代码如下: /*程序分析:利用while语句,条件为输入的字符不为'\n'*/ #include "stdio.h& ...

  5. php 动态多维数组长度,怎么在php中利用count获取多维数组的长度

    怎么在php中利用count获取多维数组的长度 发布时间:2021-01-05 16:38:55 来源:亿速云 阅读:80 作者:Leah 今天就跟大家聊聊有关怎么在php中利用count获取多维数组 ...

  6. Visual Studio中的第一个Django-Python应用程序

    目录 介绍 创建一个项目 添加虚拟环境 结论 介绍 Python是一种非常强大且流行的编程语言,用于机器学习.人工智能.数据科学. 但是,如果您正在考虑使用此python创建一个Web应用程序,它可以 ...

  7. 萌新的Python练习菜鸟100例(十七)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    题目: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 分析: · string模块的使用: 字符串实现了所有一般序列的操作,还额外提供了以下列出的一些附加方法. 字符串还支持两种 ...

  8. 如何用matlab找出一组离散数据中的峰值

    如何用matlab找出一组离散数据中的峰值 对于一组离散数据,我们经常需要找出其中的峰值,如下一组离散数据: x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1 ...

  9. html拆分单元格成两列,在excel中怎样把一个单元格拆分成两个单元格

    excel表格中如何拆分带括号的单元格比如说我有一个表格单元格内容是 :张三李四(000001) 如何将括号内的选中需要拆分的单元格,Ctrl +F把单元格里面的括号或者书名号换成逗号,然后在数据选项 ...

  10. 给定一个正整数n, 输出1到n的所有排列 如输入 3 输出 123, 132, 213, 231, 312, 321 (Java实现)

    package com.yijie.practice;import java.util.HashSet; import java.util.Scanner; import java.util.Set; ...

最新文章

  1. MariaDB/MySQL从数据库中选择随机的行
  2. 剑指offer 28:字符串的排列
  3. 上职高学计算机专业好还是农林,职业高中电脑专业和大学电脑专业 有什么不同?...
  4. Navicat for MySQL连接MYSQL出错,错误代码1045的解决方法
  5. Java设计模式(学习整理)---命令模式
  6. 蓝桥杯 2011年第二届C语言初赛试题(4)
  7. 互联网反欺诈体系中的常用技术和数据类型
  8. centos普通用户和root用户之间相互切换
  9. iOS之中国银联移动支付控件升级的问题
  10. php跳转qq临时会话,QQ客服支持临时会话设置
  11. java 纳秒 毫秒,秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得
  12. App Store上的健身应用
  13. mac svn 服务器及客户端
  14. 微拍堂积极践行社会责任,促进中国经济高质量发展
  15. 初识MIMO(五):CSI反馈及其仿真
  16. Linux配置文档 Samba
  17. 2016年 团体程序设计天梯赛——题解集
  18. 如何绘画人物的衣服?人物的服装怎么上色?
  19. 谈h站与假高权重站的操作与盈利模式
  20. RMAN -06091

热门文章

  1. git 解决合并冲突
  2. matlab高斯消去法解线性方程组,高斯消元法—求解线性方程组与实例分析应用.pdf...
  3. 【每日函数】每日函数(2021.08.22)
  4. excel 将科学计数法的格式换成文本
  5. MySQL的事务特性
  6. 学位论文写作规范之论文选题、开题报告、毕业论文
  7. JAVA空间换时间以及时间换空间的例子
  8. java高级软件工程师证书国家,看完这篇彻底明白了
  9. 点云库PCL学习笔记 -- 输入输出IO -- 6.PCL中记录时间长度TicToc 类和系统Time 类
  10. 美团2021届秋季校园招聘笔试真题解析:小美的仓库整理