标签:dem 3.3 把数组排成最小的数 最小数 3.2 比较 一个 nbsp 输出
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 代码优化
标签:dem 3.3 把数组排成最小的数 最小数 3.2 比较 一个 nbsp 输出
原文地址:https://www.cnblogs.com/ghjnwk/p/10111393.html