摘要:题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组,,,则打印出这三个数字能排成的最小数字为。
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
分析把数组按照可以达到最终最小数字的顺序重新排列一遍,但是有一个问题,排序的衡量标准是什么,也就是说两个数字怎么判断谁前谁后?
例如[3,5,32,321],3和5很好判断,肯定是3在前最后的排成的数字比较小,但是5和32呢?所以,排序的衡量标准应该是比较这两个数字排成的数字的大小,例如5和32,可以排成532和325,325<532,所以32得排在前面。
function PrintMinNumber(numbers) { if(numbers.length === 0) return ""; if(numbers.length === 1) return numbers[0]; numbers.sort(function(a,b) { var astr = a.toString(), bstr = b.toString(); var ab = +(astr+bstr), ba = +(bstr+astr); return ab - ba; }) var res = ""; for(var i = 0;i < numbers.length;i++){ res += numbers[i]; } return +res; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/96383.html
摘要:将大的先放在后面,再下一次可以把相同大的放在上一次的之前,顺序改变。 之前介绍的排序算法: 【算法】插入排序——希尔排序+直接插入排序_Rinne’s blog-C...
摘要:此专栏文章是对力扣上算法题目各种方法的总结和归纳整理出最重要的思路和知识重点并以思维导图形式呈现当然也会加上我对导图的详解目的是为了更方便快捷的记忆和回忆算法重点不用每次都重复看题解毕竟算法不是做了一遍就能完全记住的所 ...
此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), 毕竟算法不是做了一遍就能完全记住的. 所以本文适合已经知道解题思路和方法, 想进一步加强理解和记忆的朋友, 并不适合第一次接触此题的朋友(可以根据题号先去力扣看看官方题解, 然后再看本文内容). 关...
摘要:有效二叉搜索树定义如下节点的左子树只包含小于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。而我们二叉搜索树保证了左子树的节点的值均小于根节点的值,根节点的值均小于右子树的值,因此中序遍历以后得到的序列一定是升序序列。 ...
阅读 1176·2019-08-30 15:55
阅读 937·2019-08-30 15:55
阅读 2126·2019-08-30 15:44
阅读 2841·2019-08-29 14:17
阅读 1096·2019-08-29 12:45
阅读 3276·2019-08-26 10:48
阅读 3098·2019-08-23 18:18
阅读 2570·2019-08-23 16:47