19 把数组排成最小的数
Posted ghjnwk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19 把数组排成最小的数相关的知识,希望对你有一定的参考价值。
0 引言
问题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
1 抽象问题具体化
举例:输入数组{3,32,321},打印出这三个数字能排成的最小数字.
1. 3与32相比,32排在3的前边,得到序列32,3;
2. 321与3相比,321排在3的前边;321与32相比,321排在32的前边,得到序列321,32,3;
3. 打印序列321323.
2 具体问题抽象分析
1. 定义排序规则:两个数字,从最高位数字开始比较。
1.1 如果小,则排在前边;
1.2 如果大,则排在后边;
1.3 如果相等,则比较下一位,如果下一位不存在,则比较当前数与前一位的大。
1.3.1 如果小于,则排前边;
1.3.2 如果大于,则排后边;
1.3.3 如果相等,则随意。
2. 将所有数拼接起来,输出即可.
3. 为了便于对数中的每个数字单独处理,将数转成字符串.
3 demo
4 代码优化
以上是关于19 把数组排成最小的数的主要内容,如果未能解决你的问题,请参考以下文章