每天一道剑指offer-把数组排成最小的数
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
思路
Collections.sort()
compareTo()
代码
public String PrintMinNumber(int [] numbers) {String res = "";if(numbers.length<1){return res;}ArrayList<Integer> list = new ArrayList<>();for(int i:numbers){list.add(i);}Collections.sort(list,new Comparator<Integer>(){public int compare(Integer n1,Integer n2){String s1 = n1+""+n2;String s2 = n2+""+n1;return s1.compareTo(s2);}});for(int i:list){res+=i;}return res;}
知识
1 Collections.sort()
格式一: public static <T extends Comparable<? super T>> void sort(List list)
说明:该方法中的泛型都是Comparable接口的子类,即只有是Comparable接口子类类型的数据,才能进行比较排序。如果其他类型的数据要进行比较排序,必须继承Comparable接口并重写equals()和compareTo()方法。其中如String类、Integer类都是Comparable接口子类,可以进行排序,而基本类型不能进行sort排序。
格式二:public static void sort(List list, Comparator<? super T> c)
说明:该方法中指定比较方式Comparator<? super T> c,即c必须实现Comparator<? super T>接口,覆写compareTo()方法指定比较项目。比较项目在类外指定,比较灵活
举例:
- 通过Collections.sort()方法,对Integer泛型的List进行排序;
- List list = [2,3,1];
- Collections.sort(list);—[1,2,3]
- 对String泛型的List进行排序; 创建String泛型的List,添加乱序的String元素
- List list =[“b”,“a”,“c”]
- Collections.sort(list);----[“a”,“b”,“c”]
- 其他类型的List排序,比如Student类的name,age
- 首先让Student implements Comparable
- @Override
public int compareTo(Student s) { // 设置age为比较项
return this.age.compareTo(s.age);
} - Collections.sort(list, new compare(Student s1, Student s2) {
return s1.age.compareTo(s2.age);
}
每天一道剑指offer-把数组排成最小的数相关推荐
- 剑指offer 把数组排成最小的数 atoi和itoa,pow
pow(x,y)在#include<math.h>文件中,计算x的y次方. C++引入头文件:#include <stdlib.h> 或者 #include <cstdl ...
- 4-剑指offer: 把数组排成最小的数
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 代码: cl ...
- 剑指offer 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组 ...
- [剑指offer] 旋转数组的最小数字
本文首发于我的个人博客:尾尾部落 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2 ...
- 剑指offer之数组中重复的数(Java实现)
数组中重复的数 NowCoder 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的, 也不知道每个数字重复几次.请找出数 ...
- 剑指offer.01 数组中重复的数(0504刷题自用)
代码 class Solution {public:int findRepeatNumber(vector<int>& nums) {unordered_map <int,i ...
- 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格
一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...
- 【LeetCode】剑指 Offer 45. 把数组排成最小的数
[LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...
- 剑指 Offer 笔记: T45. 把数组排成最小的数
T45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" ...
- 【LeetCode】剑指 Offer 51. 数组中的逆序对
[LeetCode]剑指 Offer 51. 数组中的逆序对 文章目录 [LeetCode]剑指 Offer 51. 数组中的逆序对 package offer;public class Soluti ...
最新文章
- matplotlib - 极坐标上的散点图
- 算法学习——决策单调性优化DP
- ASP.NET Core管道深度剖析(4):管道是如何建立起来的?
- 常用Smarty变量操作符
- Hive 操作(一)
- 自己搭建Maven项目下运行项目后Eclipse报错:org.springframework.web.context.ContextLoaderListener
- linux shell脚本 main,Linux shell启动Java Main函数脚本
- st7735屏幕移植-高清图片显示
- 关于BottomNavigationView的使用姿势都在这里了
- vue-nuxt-ssr 做谷歌,百度统计以及google,facebook埋点总结
- Unable to add window android.view.ViewRootImpl$W@c1bf05d -- permission denied for window type 2003
- 一只小白,在学习delphi.感觉很吃力。。
- Apk脱壳圣战之---脱掉“梆梆加固”的保护壳
- centos卸载nvidia驱动_在Ubuntu系统中NVIDIA显卡驱动卸载与安装
- mysql(update)
- 大合集!互联网行业常用数据分析指标
- PDF转图片乱码问题解决
- 基于 vue3 element-plus 的暗黑模式
- vue引入阿里妈妈的图标
- python程序怎么打开_如何运行Python程序
热门文章
- elementui el-input输入数字为整数的验证
- spring云化架构迁移 (一)
- Python替换多个tomcat端口号
- 1.7 试探法(回溯法)
- 1.深入分布式缓存:从原理到实践 --- 缓存为王
- 5.Linux/Unix 系统编程手册(上) -- 深入探究文件IO
- 7.卷1(套接字联网API)---套接字选项
- 3.高性能MySQL --- 服务器性能剖析
- 3.4 Zend_Db_Table_Row
- Linux下使用shell脚本远程登录主机(Ubuntu CentOS)