[线性dp][完全背包]leetcode70:爬楼梯(eary)

编程入门 行业动态 更新时间:2024-10-27 08:27:40

[<a href=https://www.elefans.com/category/jswz/34/1768154.html style=线性dp][完全背包]leetcode70:爬楼梯(eary)"/>

[线性dp][完全背包]leetcode70:爬楼梯(eary)

题目:


题解:

使用动态规划思路:线性 dp 递推 and 完全背包求排列数思路。


代码如下:

// 2022/5/14 动态规划两种解法
const int N = 50;
int f[N];// f[i]表示爬到第i阶台阶的方案数量
class Solution {
public:int climbStairs(int n) {return dp1(n);}// 完全背包:恰好装满n的物品的所有方案数(每个物品可被使用无限次)int dp1(int n){// 初始化为0,可以将装不满的状态设为无效值0memset(f,0,sizeof f);// 装满体积0和体积1的方案数各为1f[0]=1;// 这里先遍历背包,再遍历物品,用来统计所有的排列数for(int j=0;j<=n;++j)for(int i=1;i<=2;++i)if(j>=i)f[j]+=f[j-i];return f[n];}// 线性dp的思路int dp2(int n){memset(f,0,sizeof f);// 初始状态:爬到0阶和1阶的方案数都是1步f[0]=f[1]=1;// 状态转移:第i阶台阶由第i-1阶台阶和第i-2阶台阶转移而来for(int i=2;i<=n;++i)f[i]=f[i-1]+f[i-2];return f[n];}
};

更多推荐

[线性dp][完全背包]leetcode70:爬楼梯(eary)

本文发布于:2023-07-28 18:51:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1279609.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:线性   背包   爬楼梯   eary   dp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!