![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
sunjingze1
这个作者很懒,什么都没留下…
展开
-
把数组组成最小的数
/** * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, * 打印能拼接出的所有数字中最小的一个 * 。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 */这题可以使用全排列的方法再一一对比得出最小的数,不过这种方法的复杂度很大。我们如果可以知道每每两数的排序规则,就可以让这个数组从小到大进行排序进而组合成最小的数,使用compareTo的方式比较(下图),可以看到字符串比较是根据每个字符的ASII值进行比较,如果对这个数组全部数进行.原创 2020-12-28 13:57:29 · 657 阅读 · 0 评论 -
剑指offer刷题顺序
数组(共12道题目):【剑指Offer】1、二维数组中的查找【剑指Offer】6、旋转数组的最小数字【剑指Offer】13、调整数组顺序使奇数位于偶数前面【剑指Offer】19、顺时针打印矩阵【剑指Offer】28、数组中出现次数超过一半的数字【剑指Offer】30、连续子数组的最大和【剑指Offer】32、把数组排成最小的数【剑指Offer】35、数组中的逆序对【剑指Offer】37、数字在排序数组中出现的次数【剑指Offer】40、数组中只出现过一次的数字【剑转载 2020-12-27 14:17:04 · 2293 阅读 · 0 评论 -
变态跳台阶
对于变态跳台阶其实可以和跳台阶一样解决,只要理解了跳台阶的递归思想后做这个变态跳台阶是十分轻松的,这里是我写的跳台阶思路https://mp.csdn.net/editor/html/111638494递归:理解了跳台阶递归思路后,变态跳台阶可以这样理解:要跳n级台阶,设这个函数为f(n),那么在跳第n级台阶之前的位置可能是0~n-1的任意位置,所以总体的函数可以看作是f(n)=f(n-1)+f(n-2)+...+f(0)(这里要注意f(0)的取值,f(0)是一个对结果没有意义的数,但是对总体函数的原创 2020-12-24 17:40:01 · 188 阅读 · 1 评论 -
跳台阶
青蛙跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。递归:递归的思想是自顶向下来解决问题的,就是比如青蛙跳了3级台阶,那么青蛙之前只能是两种情况,一是3-1=2在第二台阶跳上来的,二是3-2=1在第一台阶跳上来的,所以设青蛙跳法的函数为f(x)那么,这个函数可以看作是 f(x)=f(x-1)+f(x-2);然后只需要计算这个函数最开始的两个值就可以完美的解决,可以是f(1)和f(2)即f(1)=1, f(2)=2;或原创 2020-12-24 17:04:57 · 111 阅读 · 4 评论