LeetCode第70题爬楼梯

继续打卡算法题,今天学习的是LeetCode70题爬楼梯,这道题目是道简单题。算法题的一些解题思路和技巧真的非常巧妙,每天看一看算法题和解题思路,我相信对我们的编码思维和编码能力有一些提升。

分析一波题目

这个题目思路是简单的,由于每次只能爬1步或者2步,那么达到每一层可以通过倒数第二层和倒数第三层推出来。

比如 n =3,等于n=2再爬一楼,n=1再爬2楼 ,这样就有 f(n) = f(n-1) + f(n-2)

编码解决

java 复制代码
class Solution {
    public int climbStairs(int n) {
        int p = 0, q = 0, r = 1;
        for (int i = 1; i <= n; ++i) {
            p = q; 
            q = r; 
            r = p + q;
        }
        return r;
    }
}

总结

1、理解题目的题意,然后发现规律,这个题目发现解可以根据前面求的子项解推出后面的解,这是动态规划思想。

相关推荐
Neo2553 分钟前
Spring 5.3.x 源码:invokeBeanFactoryPostProcessors()详解
后端
金銀銅鐵5 分钟前
[Java] 以 IntStream 为例,浅析 Stream 的实现
java·后端
Neo2558 分钟前
Spring 5.3.x 源码:refresh()方法
后端
码事漫谈15 分钟前
C++面试中的手写快速排序:从基础到最优的完整思考过程
后端
楼田莉子1 小时前
C++算法题目分享:二叉搜索树相关的习题
数据结构·c++·学习·算法·leetcode·面试
最初的↘那颗心2 小时前
Java HashMap深度解析:原理、实现与最佳实践
java·开发语言·面试·hashmap·八股文
小兔兔吃萝卜2 小时前
Spring 创建 Bean 的 8 种主要方式
java·后端·spring
pusue_the_sun2 小时前
数据结构——栈和队列oj练习
c语言·数据结构·算法··队列
大锦终2 小时前
【算法】模拟专题
c++·算法