代码随想录算法训练营day38 | LeetCode 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

509. 斐波那契数(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台)

思路:经典的dp题。

int fib(int n){
    if(n == 0 || n == 1) return n;
    return fib(n-1) + fib(n-2);
}

70. 爬楼梯(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台)

思路:直接用递归做会超时,说明不断地读写栈内存还是蛮耗时的。

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

746. 使用最小花费爬楼梯(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台)

思路:一个套路,先确定状态转移公式,然后初始化,最后遍历一遍即可

int minCostClimbingStairs(vector& cost) {
    int size = cost.size();
    vector dp(size+1, 0);
    dp[0]=0;
    dp[1]=0;
    for(int i=2; i

你可能感兴趣的:(算法,leetcode,职场和发展)