剑指offer 面试题33:把数组排成最小的数

题目:
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接处的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323

解法:
找到一个排序规则,数组根据这个规则排序之后能排成一个最小的数字。要确定排序规则,就要比较两个数字,也就是给出两个数字m和n,我们需要确定一个规则判断m和n哪个应该排在前面,而不是仅仅比较这两个数字的值哪个更大。
两个数字m和n能拼接成mn和nm,比较mn和nm的大小。(字符串比较)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最小的k个数 求子数组的最大和 把数组排成最小的数字 1.最小的k个数 问题描述:输入n个数字,找到数组中最小的k...
    zero_sr阅读 3,211评论 0 1
  • 第1章 面试的流程 编程时应注意的三点: 思考清楚再开始编码; 良好的代码命名和缩进对齐; 能够单元测试; 现场面...
    codingXue阅读 3,408评论 5 0
  • 把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小...
    echoVic阅读 3,627评论 1 1
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-code.h...
    eddy_wiki阅读 13,072评论 0 30
  • 在我意想千千万万次下,这个可以和我同享枫哥哥的人真的出现了,我是震撼又木纳、即惊喜又害怕的感觉吗?揣测不了...
    我是我的天涯阅读 1,235评论 1 2