当前位置:网站首页>Daily practice of dynamic programming (2)
Daily practice of dynamic programming (2)
2022-08-02 09:08:00 【Dragon Roar @~】
1.爬楼梯
假设你正在爬楼梯.需要 n 阶你才能到达楼顶.
每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢?
我们用 f(x)f(x) 表示爬到第 xx 级台阶的方案数,考虑最后一步可能跨了一级台阶,也可能跨了两级台阶,所以我们可以列出如下式子:
f(x) = f(x - 1) + f(x - 2)
它意味着爬到第 xx 级台阶的方案数是爬到第 x - 1x−1 级台阶的方案数和爬到第 x - 2x−2 级台阶的方案数的和.很好理解,因为每次只能爬 11 级或 22 级,所以 f(x)f(x) 只能从 f(x - 1)f(x−1) 和 f(x - 2)f(x−2) 转移过来,而这里要统计方案总数,我们就需要对这两项的贡献求和.
class Solution {
public:
int climbStairs(int n) {
if(n<=2)
{
return n;
}
else{
int p=0,q=1,s=1;
for(int i=2;i<=n;i++)
{
p=q;
q=s;
s=q+p;
}
return s;
}
}
};
2.Climb stairs with minimal cost
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用.一旦你支付此费用,即可选择向上爬一个或者两个台阶.
你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯.
请你计算并返回达到楼梯顶部的最低花费.
题解:dp问题
dp[i]=min(dp[i−1]+cost[i−1],dp[i−2]+cost[i−2])
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int n=cost.size();
vector<int> dp(n+1);
dp[0]=0;
dp[1]=0;
for(int i=2;i<=n;i++)
{
dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
}
return dp[n];
}
};
边栏推荐
- 文章解读 -- FlowNet3D:Learning Scene Flow in 3D Point Clouds
- spark:热门品类中每个品类活跃的SessionID统计TOP10(案例)
- Hikari连接池源码解读
- LeetCode_2358_分组的最大数量
- 小程序云开发(十):渐变与动画
- Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案
- Redisson的看门狗机制
- cococreator 动态设置精灵
- mysqldump --set-gtid-purged=OFF
- oracle的sql改成mysql版本
猜你喜欢
![Detailed explanation of calculation commands in shell (expr, (()), $[], let, bc )](/img/3c/5cc4d16b9b525997761445f32802d5.png)
Detailed explanation of calculation commands in shell (expr, (()), $[], let, bc )

Daily practice of dynamic programming (3)

Jenkins--部署--3.1--代码提交自动触发jenkins--方式1

自定义View实现波浪荡漾效果

每天花2小时恶补腾讯T8纯手打688页SSM框架和Redis,成功上岸美团

动态规划每日一练(3)

【Flink 问题】Flink 如何提交轻量jar包 依赖该如何存放 会遇到哪些问题

Openwrt_树莓派B+_Wifi中继

Postman download localization of installation and use

大厂外包,值得拥有吗?
随机推荐
JSP页面中page指令有哪些属性及方法可使用呢?
小康股份更名赛力斯,如何走出一条高端产品的“丝绸之路”?
Hikari连接池源码解读
Jenkins--基础--5.4--系统配置--全局工具配置
每天花2小时恶补腾讯T8纯手打688页SSM框架和Redis,成功上岸美团
oracle的sql改成mysql版本
openpyxl 单元格合并
初学者怎么快速学会SQL
OneNote Tutorial, How to Create More Spaces in OneNote?
Detailed explanation of calculation commands in shell (expr, (()), $[], let, bc )
自定义View实现波浪荡漾效果
HCIA静态路由综合练习
ABAP 和json转换的方法
(Note) AXIS ACASIS DT-3608 Dual-bay Hard Disk Array Box RAID Setting
了解下C# 不安全代码
Gorilla Mux 和 GORM 的使用方法
Redis分布式锁
XML简介
Redis数据结构
etcd implements large-scale service governance application combat