递归
有梦想的阿长
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指Offer:链表中倒数第k个结点(三种解法)
输出链表中倒数第k个结点 1. 问题描述 输入一个链表,输出该链表中倒数第k个结点。 示例: 输入1 {1,2,3,4,5},输出 5 2. 解题思路 方法1: 递归输出 ①:之前我们在学习“从尾到头打印链表”的时候提到过,递归其实类似于堆栈,先调用后执行。添加链接描述 ②:根据递归的原理,遍历链表,当遍历链表结束后,每次把 k-- ,直到k = 0,返回结点值,否则返回NULL ③:因为递归调...原创 2020-03-11 11:10:03 · 234 阅读 · 0 评论 -
剑指Offer:矩形覆盖
矩形覆盖 1. 问题描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法? 比如n=3时,23的矩形块有3种覆盖方法: 2. 解题思路 ①:假如现在有一个2n的矩形,n>2。 ②:第一次用小矩形去覆盖的时候,有两种选择:横着放或者竖着放 #横着放:横着放的话,如果在上面放,下面那个区域也只能横着放,所以横着放完还剩下...原创 2020-03-10 13:14:53 · 158 阅读 · 0 评论 -
剑指Offer:斐波那契数列(两种解法:递归)
斐波那契数列 1. 问题描述 斐波那契数列指的是这样一个数列: 1,1,2,3,5,8,13,21,34,65… 这个数列从第3项开始,每一项都等于前两项之和。 An = An-1 + An-2 现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 2. 解题思路 ①:n = 0,n = 1是一个没有公式推导的值,所以,当n=0时,输出0,n = 1时,输...原创 2020-03-09 16:41:01 · 161 阅读 · 0 评论 -
剑指Offer:跳台阶
青蛙跳台阶 1. 问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 2. 解题思路 **方法1:**递归算法 ①:假设有n级台阶,n>2,那么第一次跳有两种可能,跳1级或者跳两级 ②:那么所有可能的跳法 = 第一次跳一级的可能 + 第一次跳二级的可能 假设第一次跳1级,那么还剩下n-1个台阶 假设第一次跳2级,那...原创 2020-03-09 17:29:00 · 125 阅读 · 0 评论 -
剑指Offer:从尾到头打印链表(两种解法)
从尾到头打印链表(两种解法) 1.问题描述 输入一个链表,按链表从尾到头的顺序返回一个vector。 2. 解题思路 方法1:使用STL中的stack来辅助完成 ①:根据stack(堆栈)的先进后出原理,实现链表数据的反转 ②:首先将链表遍历,输出到stack对象中 ③:然后将stack中的元素一个个弹出到vector中,输出vector 方法2:使用递归,打印链表(附源码) ①:递归,其实就是类...原创 2020-03-09 14:16:50 · 244 阅读 · 0 评论
分享