题目翻译

有一个楼梯,第i阶用cost[i](非负)表示成本。现在你需要支付这些成本,可以一次走两阶也可以走一阶。 问从地面或者第一阶出发,怎么走成本最小。

测试样例

Input: cost = [10, 15, 20]
Output: 15
Explanation: 从第一阶出发,一次走两步 Input: cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
Output: 6
Explanation: 从地面出发,走两步,走两步,走两步,走一步,走两步,走一步。

详细分析

现在用step[i]表示走到第i阶的成本,要求step[i],我们只需在"到前一阶的成本+当前阶成本"和"到前两阶的成本+前两阶成本"取最小即可。一图胜千言:

因为step[0]和step[1]都可以作为开始出发地,所以成本都为0。注意一下爬两阶只需要那两阶的第一个成本作为总成本不需要两阶成本相加。所以

step[2] = min{step[1]+cost[1],step[0]+cost[0]} = min{10,15}=10

step[3] = min{step[2]+cost[2],step[1]+cost[1]} = min{30,15} = 15

代码实现

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

最新文章

  1. iOS Architectures 浅谈
  2. Selenium2入门(二)WebDriver
  3. 使用 python 发送邮件
  4. Solr入门之(3)常用概念说明(持续补充):
  5. annotation-config 和 component-scan 的区别
  6. 黄聪:PHP7.0中htmlspecialchars出错解决方案(wordpress)
  7. nodejs:grunt使用合并压缩的基本使用
  8. [OrangePi] Building the system
  9. Android——requestWindowFeature
  10. move和转发
  11. php时间选择器亲测可以自己修改
  12. mysql-创建函数,存储过程以及视图
  13. Asp.net web服务处理程序(第六篇)
  14. 几行实现圆形头像,以及一些常见需求形状自定义ImageView组件
  15. Django--admin源码流程
  16. java 日志脱敏框架 sensitive-新版本0.0.2-深度拷贝,属性为对象和集合的支持
  17. JavaScript闭包理解【关键字:普通函数、变量访问作用域、闭包、解决获取元素标签索引】
  18. python中的os.path.dirname(__file__)的使用
  19. mysql优化(二)
  20. Oracle 更改字符集 更改后之前的中文全成乱码了

热门文章

  1. Resque基本
  2. Ubuntu 开启telnet、ftp服务
  3. 第四天:servlet的生命周期和一些细节问题
  4. ListView里面嵌套CheckBox
  5. 关于handler和异步任务
  6. Niginx +Tomcat 集群搭建
  7. jquery获取元素在文档中的位置信息以及滚动条位置(转)
  8. vue mock数据设置
  9. iOS UITableView制作类似QQ好友列表视图
  10. Mongo client - cross-platform MongoDB management tool