草庐IT

动态规划之使用最小花费爬楼梯

1.题目分析题目链接选自力扣:使用最小花费爬楼梯先根据示例1来理解一下题目的意思.可以看到,此时一共有两个起始位置0,1.并且这三个位置都对应了一定的费用10,15当我们选择从某个地方开始想要向上走就得支付当前位置的费用才可以向上一格或者两格.当前这个示例就是从1位置处,支付15元,并且一次走两步就到达了楼顶,最终花费15元.为什么说是楼梯顶部在2位置下一处呢?原因很简单,如果在2位置处.我选择从0位置支付10元直接跳一次两步到2位置处支付的费用最少为10元.但是用例给的是最低费用为15元.因此3下标处才是楼梯顶部.这就意味着,即使到达了数组的最后位置,也需要支付当前这个位置的费用才可以到达楼

最小花费爬楼梯(动态规划)

题目:给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。输入格式:n个整数,代表从第n-1阶向上走的花费示例1:输入:cost=[10,15,20]输出:15解释:你将从下标为1的台阶开始。-支付15,向上爬两个台阶,到达楼梯顶部。总花费为15。 示例2:输入:cost=[1,100,1,1,1,100,1,1,100,1]输出:6解释:你将从下标为0的台阶开始。-支付1,向上爬两个台阶,到达下标为2的台阶。-支付1,向上爬两

【LeetCode题目详解】第九章 动态规划part01 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 (day38补)

本文章代码以c++为例!一、力扣第509题:斐波那契数题目:斐波那契数 (通常用 F(n)表示)形成的序列称为斐波那契数列。该数列由 0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1) =1F(n)=F(n-1)+F(n-2),其中n>1给定 n,请计算F(n)。示例1:输入:n=2输出:1解释:F(2)=F(1)+F(0)=1+0=1示例2:输入:n=3输出:2解释:F(3)=F(2)+F(1)=1+1=2示例3:输入:n=4输出:3解释:F(4)=F(3)+F(2)=2+1=3提示:0思路斐波那契数列大家应该非常熟悉不过了,非常适合作为动规第一道题目来练练手。

算法leetcode|70. 爬楼梯(rust重拳出击)

文章目录70.爬楼梯:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:70.爬楼梯:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?样例1:输入: n=2 输出: 2 解释: 有两种方法可以爬到楼顶。 1.1阶+1阶 2.2阶样例2:输入: n=3 输出: 3 解释: 有三种方法可以爬到楼顶。 1.1阶+1阶+1阶 2.1阶+2阶 3.2阶+1阶提示:1分析:面对这道算法题目,二当家的再次陷入了沉思。可以爬一阶或者两阶台阶,那也就是说,除了初始位置,和第一阶台阶,到达其他阶台阶n的方式,就只能从n

算法刷题Day 38 动态规划理论基础+斐波那契数+爬楼梯

Day38动态规划理论基础动态规划的解题步骤:确定dp数组(dptable)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组509.斐波那契数很基础classSolution{public:intfib(intn){inta=0,b=1;while(n--){b=a+b;a=b-a;}returna;}};70.爬楼梯classSolution{public:intclimbStairs(intn){longlongstep1=1,step2=1;//应该声明为longlong,防止溢出while(n--){step2=step1+step2;step1=step2-s

Unity3D实现第一人称移动,随鼠标转动视角+上楼梯(C#)

Unity3D实现第一人称移动,随鼠标转动视角+上楼梯(C#)第一人称移动:1、在层级面板创建一个Capsule,命名为Player,将层级面板中的相机拖到Player下方2、重置Player和摄像机的Transform数值(方便调整摄像机在Player上的位置),然后调整摄像机在Player上的位置大概将摄像机放到Player眼睛的位置即可。3、创建一个脚本,命名为CameraControl。并挂载到摄像机上。代码内容publicclassCameraControl:MonoBehaviour{publicTransformplayer;//获取玩家privatefloatmouseX,mo

爬楼梯(C++)

爬楼梯假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输入:n=3输出:3解释:有三种方法可以爬到楼顶。1.1阶+1阶+1阶2.1阶+2阶3.2阶+1阶提示:1我的代码:classSolution{private://递归想要优化的话关键是这里动态规划longlongintdp[50];public://经典递归找规律题intclimbStairs(intn){//递归最后一组数据过不了超时//if(n//{//dp[n]=n;//returnn;//

【手撕算法|动态规划系列No.3】leetcode746. 使用最小花费爬楼梯

个人主页:平行线也会相交欢迎点赞👍收藏✨留言✉加关注💓本文由平行线也会相交原创收录于专栏【手撕算法系列专栏】【LeetCode】🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助🍓希望我们一起努力、成长,共同进步。点击直接跳转到该题目目录🍞题目描述🥟算法原理(解法一)🍭算法原理(解法二)🍰代码实现(解法1)🍡代码实现(解法2)🍋总结🍞题目描述给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。示例一:

爬楼梯问题-从暴力递归到动态规划(java)

爬楼梯,每次只能爬一阶或者两阶,计算有多少种爬楼的情况爬楼梯--题目描述暴力递归递归+缓存动态规划暴力递归到动态规划专题爬楼梯–题目描述一个总共N阶的楼梯(N>0)每次只能上一阶或者两阶。问总共有多少种爬楼方式。示例1:N=1,一步上去了,返回1.示例2:N=2时。可以第一次上一阶,再上一阶,这是一种方式,也可以一次直接上两阶,这也是一种方式,返回2;示例3:N=3:可以选择,111,1221三种方式上楼,返回3.暴力递归解题思路:先确认basecase:只有一层台阶时有1种方式,只有两层台阶时有两种方式,当N层台阶时,当前这一步能选择上一层或者上两层两种可能性因此f(N)=f(N-1)+f(

力扣 -- 746. 使用最小花费爬楼梯

题目链接:746.使用最小花费爬楼梯-力扣(LeetCode) 先分析题目: 这是一道动态规划的题,我们可以根据动态规划五部曲分析解答这道题。 参考代码:classSolution{public:intminCostClimbingStairs(vector&cost){intn=cost.size();//由于我们要返回的是dp[n],所以需要开n+1个空间的dp表(数组)vectordp(n+1);//填表前需要先初始化dp[0],dp[1]的值,以免填表时越界dp[0]=dp[1]=0;inti=0;//dp[0],dp[1]已经填好了,所以dp表可以从i=2位置开始填//记得i一定要取