博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快手笔试题
阅读量:5947 次
发布时间:2019-06-19

本文共 856 字,大约阅读时间需要 2 分钟。

题目:你需要爬上一个N层的楼梯,在爬楼梯的过程中,每阶楼梯需花费非负代价,第 i 阶楼梯花费代价表示cost[i],一旦你付出了代价,你可以在该阶梯基础上往上爬一阶或两阶。在开始时,你可以选择从第 0 阶或第 1 阶开始出发。请计算爬上楼层顶部的最低花费。

 

输入格式:

1,100,1,100,1,1,100,1,1

 

输出格式:

6

 

分析:动态规划。当前最小体力花费=min(距当前位置一阶梯的最小体力花费+走一阶梯的体力花费,距当前位置两阶梯的最小体力花费+走两阶梯的体力花费)。

  • dp[i] = min(dp[i-2]+cost[i-2],dp[i-1]+cost[i-1]) 

求解:

class Solution {public:    int minCostClimbingStairs(vector
& cost) { if(cost.size()==0){ return 0; } if(cost.size()==1){ return cost[0]; } if(cost.size()==2){ return std::min(cost[0],cost[1]); } int step[1024]; step[0] = 0; step[1] = 0; for(int i=2;i<=cost.size();i++){ step[i] = std::min(step[i-1]+cost[i-1],step[i-2]+cost[i-2]); } return step[cost.size()]; }};

  

转载于:https://www.cnblogs.com/xzxl/p/9623463.html

你可能感兴趣的文章
文件上传到阿里云
查看>>
网络知识
查看>>
uoj#228. 基础数据结构练习题(线段树)
查看>>
iptables 端口转发--内网实现上网
查看>>
计蒜客NOIP模拟D1T2
查看>>
在android程序中加入widget(窗口小部件)并与之交互的关键代码
查看>>
WebSocket 是什么原理?为什么可以实现持久连接
查看>>
JSP中动态INCLUDE与静态INCLUDE的区别
查看>>
JS键盘事件监听
查看>>
ios开发周期之--(向上,向下,四舍五入)取整
查看>>
加油!
查看>>
拦截导弹问题(动态规划)
查看>>
iOS 单元测试(Unit Test 和 UI Test)
查看>>
[linux小技巧]
查看>>
文件下载_中文乱码:"Content-disposition","attachment; filename=中文名
查看>>
HBase 笔记3
查看>>
2017.11.23 display fun --STM8
查看>>
std::binary_serach, std::upper_bound以及std::lower_bound
查看>>
深入学习jQuery选择器系列第八篇——过滤选择器之伪子元素选择器
查看>>
将非常规Json字符串转换为常用的json对象
查看>>