本文共 1268 字,大约阅读时间需要 4 分钟。
【解题思路】此类求 多少种可能性 的题目一般都有 递推性质 ,即 f(n) 和 f(n-1)…f(1) 之间是有联系的。
【动态规划的算法流程】
class Solution: def numWays(self, n: int) -> int: a, b = 1, 1 for _ in range(n): a, b = b, a + b return a % 1000000007'''作者:jyd链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/solution/mian-shi-ti-10-ii-qing-wa-tiao-tai-jie-wen-ti-dong/'''
【扩展 - 】
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 【思路】我想说,这青蛙真变态,真能跳。
当n=1时,结果为1; 当n=2时,结果为2; 当n=3时,结果为4; . 以此类推,我们使用数学归纳法不难发现,跳法f(n)=2(n-1)。
class Solution: def jumpFloorII(self, number): if number <= 2: return number total = 1 for _ in range(1, number): total *= 2 return total
转载地址:http://ofjii.baihongyu.com/