leetcode70:爬楼梯

动态规划==》把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系(状态转移方程),逐个求解

本质==》一个规模比较大的问题(可以用两三个参数表示的问题),可以通过若干规模较小的问题的结果来得到的(通常会寻求到一些特殊的计算逻辑,如求最值等)

==============================Python======================================

 

class Solution:
    def climbStairs(self, n: int) -> int:
        if n == 1 or n == 2:
            return n
        a = 1
        b = 2
        for i in range(3, n+1):
            a, b = b, a + b
        return b

 

===================================Go========================================

func climbStairs(n int) int {
    if n == 1 {
        return 1
    }
    dp := make([]int, n+1)
    dp[1] = 1
    dp[2] = 2
    for i := 3; i <= n; i++ {
        dp[i] = dp[i-1] + dp[i-2]
    }
    return dp[n]
}

 

posted @ 2020-08-16 10:23  LinBupt  阅读(66)  评论(0编辑  收藏  举报