题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如,输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323. 牛客网刷题地址 思路分析 对于数字m和n,可以拼接成mn和nm,如果mn<nm,我们定义m小于n.反之则相反.利用这个排序规则,从小排到大即可实现题目要求. 可以利用Collections.sort中重新定义排序器来重新定义比较规则 测试用例 功能测试:输入…
题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路: 1.全排列 求出数组中所有数字的全排列,然后把每个全排列拼起来,求出拼出来的数字的最大值. 2.定义新的排序规则 如果两个数字m,n拼接成mn和nm,如果mn<nm,那么m应该排在n的前面,我们定义此时m小于n,如果mn=nm,我们定义m等于n. 可以考虑将数字转成字符串,一来防止数字拼接时的溢出,二来字…
题目:输入一个正整数数组,把数组里全部数字拼接起来排成一个数.打印能拼接出的全部数字中最小的一个. 样例说明: 比如输入数组{3. 32, 321},则扫描输出这3 个数字能排成的最小数字321323. 解题思路: 第一种:直观解法 先求出这个数组中全部数字的全排列,然后把每一个排列拼起来,最后求出拼起来的数字的最大值. 另外一种:排序解法 找到一个排序规则,数组依据这个规则排序之后能排成一个最小的数字.要确定排序规则,就要比較两个数字,也就是给出两个数字m 和n,我们须要确定一个规则推断m 和…
// 面试题45:把数组排成最小的数 // 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼 // 接出的所有数字中最小的一个.例如输入数组{3, 32, 321},则打印出这3个数 // 字能排成的最小数字321323. #include <iostream> #include <string> #include <algorithm> int compare(const void* strNumber1, const void* strNumb…
题目:输入一个正整数数组.把数组里面全部的数字拼接排成一个数,打印能拼接出的全部数字中的一个.比如输入数组{3,32.321}.则打印出这3个数字能排成的最小数字321323. 这个题目最直接的做法应该是先求出这个数组中的全部数字的全排列,然后把每一个排列拼接起来,最后求出排列起来的数字的最小值. 求数组的排列和面试题28很相似.依据排列组合的仅仅是,n个数字总共同拥有n!排列,我们再来看一下更快的算法. 这道题事实上希望我们可以找到一个排序规则,数组依据这个规则排序之后能排成一个最小的数字.要…
剑指Offer:把数组排成最小的数[45] 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如,输入数组是{3.32.321},则打印出来的这3个数字能拼接成的最小数字是321323. 方法论 简要思路 最暴力的方法是把这个数组中的所有数字的全排列暴力出来,然后找个最小的.但是显然我们不能这么做. 我们应该定义一个排序规则,: 先将整型数组转换成String数组,然后将String数组排序,最后将排好序的字符串数组拼接出来.关键就是制定排序…
题目 剑指 Offer 45. 把数组排成最小的数 思路1 将整数数组转化成字符串数组 然后使用Arrays工具类的sort方法帮助我们排序 代码 class Solution { public String minNumber(int[] nums) { int length = nums.length; // 将整数数组转化成字符串数组 String[] str = new String[length]; for (int i = 0; i < length; i++) { str[i] =…
题目地址:http://ac.jobdu.com/problem.php?pid=1504 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为一个整数m (1<=m <=100)代表输入的正整数的个数. 输入的第二行包括m个正整数,其中每个正整数不超过10000000. 输出: 对应每个测…
php实现把数组排成最小的数(核心是排序)(看别人的代码其实也没那么难)(把php代码也看一下)(implode("",$numbers);)(usort) 一.总结 核心是排序 看别人的代码其实也没那么难 把php代码也看一下 implode:return implode("",$numbers); //2.类似于join,将数组转化为字符串 usort:自定义排序规则 二.php实现把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一…
把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 题目链接: 把数组排成最小的数 代码 import java.util.Arrays; /** * 标题:把数组排成最小的数 * 题目描述 * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排…