[dp]leetcode 746. Min Cost Climbing Stairs

输入:一个数组cost,cost[i]表示越过第i个台阶的代价(可能是热量,也可能是过路费)
输出:走过这n个台阶,需要的最小代价
规则:一旦你为第i个台阶付出代价cost[i],那么你可以到达第i+1个台阶,也可以到达第i+2个台阶。你可以从第0个或者第1个台阶开始走。
分析:没什么好说的,一步步走,没走一步付出代价private void walk(int step,int currentcost) 表达站在第i个台阶,付出了多少代价。
你可以试着把cache去掉,当然是超时。加cache是因为,如果你曾经花费代价10站在了第5个台阶,那下次遇到需要花费代价15站在了第5个台阶,就没必要进行走下去。因为代价肯定高嘛。

class Solution {private int mincost = Integer.MAX_VALUE;private int[] cost;private int[] cache;private int n;public int minCostClimbingStairs(int[] cost) {this.cost = cost;this.n = cost.length;this.cache = new int[n];walk(0,0);walk(1,0);return mincost;}private void walk(int step,int currentcost){if(step>=n){mincost = Math.min(mincost,currentcost);return;}if(cache[step]==0 || currentcost<cache[step]){cache[step] = currentcost;walk(step+1,currentcost+cost[step]);walk(step+2,currentcost+cost[step]);}}
}

动态规划分析:初步分析得到能站点第i个台阶的代价应该是与第i-1和第i-2台阶有关。
之前很多从回溯法到动态规划都会发现dp[i]和回调函数的含义会有点变化。这次不会发生变化,直接拿过来。

dp[i]表示能够到达第i个台阶需要的最小代价
dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]cost[i-2]])
最后返回dp[n]
 	public int minCostClimbingStairs(int[] cost) {int n = cost.length;int[] dp = new int[n+1];dp[0] = 0;dp[1] = 0;for(int i=2;i<=n;i++){dp[i] = Math.min(dp[i-2]+cost[i-2],dp[i-1]+cost[i-1]);}return dp[n];}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第六十七期:全球500强公司的2100万登录信息惊现于暗网上!

暗网上多处出现了从《财富》500强公司窃取的2100余万条登录信息&#xff0c;其中许多登录信息已被破解&#xff0c;以明文形式提供。 作者&#xff1a;布加迪编译 暗网上多处出现了从《财富》500强公司窃取的2100余万条登录信息&#xff0c;其中许多登录信息已被破解&#xff…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]47.什么是Fiat-Shamir变换?

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 只要Alice和Bob同时在线&#xff0c;Sigma协议能快速的完成Alice向Bob证明的任务。Alice向Bob发送承诺&…

第六十九期: 漫画说算法之什么是一致性哈希?

当缓存集群的节点有所增加的时候&#xff0c;整个环形空间的映射仍然会保持一致性哈希的顺时针规则&#xff0c;所以有一小部分key的归属会受到影响。 作者&#xff1a;IT知识课堂来源 一年之前—— 未来两年内&#xff0c;系统预估的总订单数量可达一亿条左右。 按Mysql单表…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]48.TPM的目的和使用方法

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 TPM&#xff08;Trusted Platform Module&#xff0c;可信平台模块&#xff09; 在检查TPM目的之前&#x…

[dp]leetcode 1025. Divisor Game

输入&#xff1a;一个正整数N 输出&#xff1a;Alice赢&#xff0c;返回true&#xff0c;否则false 规则&#xff1a;黑板上给出一个数字N&#xff0c;ALice先选择。Bob后选择。他们可以选择一个数字 X&#xff0c;0<X<N并且N%X0。一个人选择X以后&#xff0c;黑板上的数…

spring学习(25):通过构造函数依赖注入

目录结构 pox.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

计算机原理

计算机组成原理 简单易学、开源免费、可移植、可拓展、可嵌入、面向对象&#xff0c;比java、c#等更彻底 谷歌、CIA、nasa、YouTube、Dropbox、Instagram、Facebook、redhat、豆瓣、知乎、春雨医生、搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、土豆、新浪、果壳等都在使…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]49.描述在IPsec和TLS后的基本想法

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 网络安全协议&#xff08;Internet Protocol Security&#xff0c;IPsec&#xff09;和安全传输层协议&…

spring学习(26):更优雅的依赖注入 在@bean注入参数

目录结构 pox.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

[dp] LeetCode 62. Unique Paths

输入&#xff1a;两个int m和n 输出&#xff1a;一个int,表示不同路径的个数。 规则&#xff1a;有一个m行n列的矩阵&#xff0c;一个机器人从左上角走到右下角&#xff0c;每次向下或者向右走一格。 分析&#xff1a;目的是要找到从(0,0)到(m-1,n-1)有多少种不同 的走法。如果…

springboot 控制台程序读取配置文件(原创)

首先新建一个springboot项目&#xff0c;此处省略。 1.新建一个application.properties person.namekevin person.age6 person.sexmale 2.新建一个类&#xff0c;自动读取对应字段的值 有两种方式&#xff0c; 第一种 package cn.wq;import org.springframework.beans.factory.…

spring学习(27):通过setter依赖注入

目录结构 pox.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]50.什么是BLS基于对的签名方案?

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 转载链接&#xff1a;https://www.cnblogs.com/zhuowangy2k/p/12248721.html

EF(Entity FrameWork)实体框架

一、 1、简称&#xff1a;实体框架 2、ADO.NET Entity FrameWork 是微软以ADO.NET为基础发展出来的对象关系对应&#xff08;O/R Mapping&#xff09;解决方案&#xff1b; 3、ORM框&#xff1a;对象关系映射&#xff08;Object-Relational Mapping&#xff09;&#xff0c;是一…

深度学习04-RNN

文章目录1 为什么需要RNN1.1RNN的应用场景1.2 DNN和CNN不能解决的问题2 RNN的网络结构2.1 RNN基础结构2.2 不同类型的RNN3 RNN的优化算法BPTT4 LSTM5 GRU1 为什么需要RNN 1.1RNN的应用场景 1 模仿论文&#xff08;生成序列&#xff09;。输入是一堆的论文文章&#xff0c;输出…

spring学习(28):处理自动装配的歧义性

pox.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]51.基于ID的加密安全模型,描述IBE方案

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。 在公钥密码学中&#xff0c;如果Alice想要给Bob发送一条消息&#xff0c;她需要Bob的公钥&#xff0c;一般来…

shell 脚本实现退点输出

1、elasticsearch启动脚本 1 #!/bin/bash2 export JAVA_HOME/usr/java/jdk1.8.0_201-amd643 export JAVA_BIN/usr/java/jdk1.8.0_201-amd64/bin4 export PATH$JAVA_BIN:$PATH5 export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar6 export JAVA_HOME JAVA_BIN P…

spring学习(29):xml配置规范

目录结构 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

[dp] LeetCode 91. Decode Ways

输入&#xff1a;一个字符串&#xff0c;只包含0-9的字符。 输出&#xff1a;解码种类 规则&#xff1a;有一种信息映射规则 A->1,B->2…Z->26。 例如输入’1’&#xff0c;只能解码为A。 输入’12’&#xff0c;可以解码为’AB’&#xff0c;也可以是’L’&#xff0…