题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。将数字转化为字符串,然后对字符串进行快速排序class Solution {
public:
string PrintMinNumber(vector numbers) {
string r...
分类:
编程语言 时间:
2015-09-21 01:41:15
阅读次数:
276
【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目链接:http://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993?rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/que...
分类:
编程语言 时间:
2015-09-12 10:55:41
阅读次数:
176
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。string.append 在末尾添加string或char。string.compare,逐个比较,abcd>ab;思路:...
分类:
编程语言 时间:
2015-09-01 13:56:05
阅读次数:
182
1.把数组排成最小的数class Solution {public: static bool compare(const string& s1, const string& s2) { string t1 = s1 + s2; string t2...
分类:
其他好文 时间:
2015-08-18 15:34:16
阅读次数:
105
题目:
输入一个正整形数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中的最小的一个,例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字321323。
思路:
将数组转换成字符串,然后按照字符串的排序规则直接直接比较。也就是说"3"+"32" 和"32"+"3"比较,如果前者大于后者,则交换3和32的位置
public static void prin...
分类:
编程语言 时间:
2015-08-14 11:49:02
阅读次数:
126
题目:输入一个正整数数组,把数组里面所有的数字拼接排成一个数,打印能拼接出的所有数字中的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323.
这个题目最直接的做法应该是先求出这个数组中的所有数字的全排列,然后把每个排列拼接起来,最后求出排列起来的数字的最小值。求数组的排列和面试题28非常相似。根据排列组合的只是,n个数字总共有n!排列,我们再来看一下更快的算法...
分类:
编程语言 时间:
2015-08-09 12:40:12
阅读次数:
121
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323。
思路:首先,看到题目就要想到先把整数转换为字符串,因为结果肯定是一个大数。然后分析这道题目的本质,其实就是要对转换后的字符串进行排序,然后顺序输出即可,至于排序的方式需要自己定义。举个例子,题目中的字符串“3...
分类:
编程语言 时间:
2015-08-08 10:36:23
阅读次数:
138
题目描述
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
解题思路
这道题是一个排序问题,但是要自定义排序规则。
需要注意的问题是:拼接起来的数可能超出整型数的表示范围,因此这也是一个大数问题。
用字符串来表示解决溢出问题。
实现代码
c...
分类:
编程语言 时间:
2015-07-30 23:20:24
阅读次数:
224
题目描述:http://ac.jobdu.com/problem.php?pid=1504
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。容易观察到:
对于3, 32 : 323 < 332 ,因此 32应该在3之前
对于3,321 : 3213 < 3321,因此...
分类:
编程语言 时间:
2015-07-28 21:06:07
阅读次数:
126
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:1、全排列求出数组中所有数字的全排列,然后把每个全排列拼起来,求出拼出来的数字的最大值。2、定义新的排序规则如果...
分类:
编程语言 时间:
2015-07-25 16:36:42
阅读次数:
141