LeetCode70:爬楼梯

复制代码
class Solution {
public:
    int climbStairs(int n) {
        if(n == 1)  return 1;
        if(n == 2)  return 2;
        vector<int> dp(n + 1, 0);
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i < n +1; i++)
        {
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[n];
    }
};

这个题目也就是最简单的动态规划,题目很难理解,实际上当你递推几个之后就好办了很多。

n = 1 有1种方法

n = 2 有2种方法

n = 3 有3种方法

n = 4 有5种方法

n = 5 有8种方法

也就是斐波那契数列,区别就在n = 0时,这个题目没有n = 0,也就是没有0阶楼梯这一说法

看着程序员卡尔的动态规划五部曲也就是五步走,然后确定dp状态转移方程,最后算出来n的时候有多少种方法走上台阶。

相关推荐
鲸沉梦落3 分钟前
JVM类加载
java·jvm
carry杰5 分钟前
esayExcel导出图片
java·easyexcel 图片
路人甲ing..11 分钟前
Android Studio 快速的制作一个可以在 手机上跑的app
android·java·linux·智能手机·android studio
心灵宝贝1 小时前
Mac 安装 JDK 8u281(JDK-8u281-1.dmg)详细步骤(附安装包)
java·macos·intellij-idea
記億揺晃着的那天1 小时前
从单体到微服务:如何拆分
java·微服务·ddd·devops·系统拆分
7ioik2 小时前
什么是线程池?线程池的作用?线程池的四种创建方法?
java·开发语言·spring
切糕师学AI2 小时前
Lombok 注解 @Slf4j
java·lombok
晨非辰2 小时前
数据结构排序系列指南:从O(n²)到O(n),计数排序如何实现线性时间复杂度
运维·数据结构·c++·人工智能·后端·深度学习·排序算法
小曹要微笑2 小时前
STM32H7系列全面解析:嵌入式性能的巅峰之作
c语言·stm32·单片机·嵌入式硬件·算法
寻星探路2 小时前
JavaSE重点总结后篇
java·开发语言·算法