算法
文章平均质量分 50
黄丑丑努力敲代码
这个作者很懒,什么都没留下…
展开
-
找到链表的倒数第n个节点(快慢指针)
这里写目录标题快慢指针原理例题一:例题二快慢指针解决的问题:找到一个链表的倒数第n个节点原理定义两个指针 fast 和 slow 都指向head节点,先让fast指针向前移动n个节点,这时再让slow指针开始向后移动。当fast为NULL时,slow刚好就停在了倒数第n个节点的位置。例题一:(剑指offer)输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。代码:struct ListNode* getKthFromEn原创 2021-03-17 16:58:10 · 419 阅读 · 0 评论 -
青蛙跳台阶问题 优化后(递归 -------> 迭代)
文章目录青蛙跳台阶问题问题分析代码青蛙跳台阶问题问题一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。分析设台阶数为n。设此时的跳法数用 f(n) 表示若n=1,不难得出,有一种方法 >>>>>>>> 得出f(1)若n=2,有两种方法 >>>>>>>>>>>>>>>>得出f(2)原创 2021-02-07 21:35:11 · 347 阅读 · 1 评论 -
汉诺塔问题(函数递归)
汉诺塔问题题目:一组大小不一的圆盘,按照上面大,下面小的规律串在A柱子上,现借助一个空的B柱子,移动到空的C柱子上。限制:①、一次只能移动一个盘子。②、移动的时候也要遵循上面盘子小,下面盘子大的规律。原理采用递归的思想解决问题具体来说:1.要是只有一个盘子,我们可以很容易的将这个盘子从A移动到C2.要是有两个盘子,由于我们已经知道了怎么把一个盘子从一个柱子移动到另一个柱子,我们可以这样做:①、用已知的方法将最上面的一个盘子从A柱子,移动到B柱子,在将最下面的柱子从A移动到C。②、将B柱原创 2021-02-07 10:06:19 · 159 阅读 · 0 评论