![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
剑指offer所有的刷题必备
ADream__
这个作者很懒,什么都没留下…
展开
-
剑指offer32 - 把数组排成最小的数(c++)
题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。题解:可以用全排列的做法找到最小的数,但是这样就会使得最后得结果要在n!个数中进行比较,这样比较的次数和最后的结果个数太多,所有我们可以用下面的办法,只需要在sort()函数中自定义一个Compare,让按照Co...原创 2020-03-27 17:45:19 · 276 阅读 · 0 评论 -
剑指offer27 - 字符串的排列(c++)
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。**题解:**先将第一个数字与后面每一个数字进行交换,然后排列后面的(begin + 1,end)个数。排列完成之后,将交换后的数交换回来,方便下一次进行交换。主干部分:swap(str[i],str[beg...原创 2020-03-27 17:44:23 · 269 阅读 · 0 评论