青蛙跳台阶算法也是动态规划法的一种,情况是一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上n级台阶总共有多少种跳法。说明如下:
1级台阶的跳法如图5-15所示。
图5-15 1级台阶的跳法
2级台阶的跳法如图5-16所示。
图5-16 2级台阶的跳法
3级台阶时可以分解为下面两种情况:
(1)可以从最后只跳一级台阶得出,此时和JumpStep[2]情况相同。
(2)也可以从最后跳两级台阶得出,此时和JumpStep[1]情况相同。
也就是说:
JumpStep[3]=JumpStep[3-1]+JumpStep[3-2]
=JumpStep[2]+JumpStep[1]
3级台阶的跳法如图5-17所示。
图5-17 3级台阶的跳法
最后可以得到结论:对于一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上n级台阶总共有多少种跳法。其解题的通式为JumpStep[n]=JumpStep[n-1]+JumpStep[n-2]。