1. 斐波那契数列 (Fibonacci Sequence)
斐波那契数列,又称为黄金分割数列,是数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖引入,所以也称为兔子算法,是指这样的数列:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, …
这个数列从第三项开始, 每一项等于前面两项之和。
F(1) = 1,
F(2) = 1,
F(n) = F(n - 1) + F(n - 2) (n >= 3)
2. 爬梯子算法
面试中,各大公司经常会考到一个题目就是爬梯子,题目大体描述如下:
假设你正在准备爬楼梯,这个楼梯有n个台阶,每一步可以选择上一个台阶或者两个台阶,总共有多少种办法爬完这个楼梯?
比如:
楼梯台阶数为2,那么两种方法:
1)1台阶 + 1台阶
2) 2台阶
楼梯台阶数为3,则三种方法:
1)1台阶 + 1台阶 + 1台阶
2)1台阶 + 2台阶
3)2台阶 + 1 台阶
问题分析,假定算法为climbStair(n):
a) 如果n = 1, climbStair(1) = 1;
b) 如果n = 2, climbStair(2) = 2