首页 > 其他分享 >LeetCode 746.使用最小花费爬楼梯

LeetCode 746.使用最小花费爬楼梯

时间:2023-05-20 20:32:12浏览次数:42  
标签:下标 746 int 台阶 15 cost 爬楼梯 LeetCode dp

1.题目:

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。


示例 1:

输入:cost = [10,15,20] 输出:15 解释:你将从下标为 1 的台阶开始。

  • 支付 15 ,向上爬两个台阶,到达楼梯顶部。 总花费为 15 。

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/min-cost-climbing-stairs 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。




2.代码:

class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int[] dp = new int[cost.length+1];//算上楼顶
        dp[0]=0;//题目说:你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。
        dp[1]=0;
        for(int i=2; i<=cost.length; i++){//注意是从2开始
            dp[i]=Math.min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);//注意dp[i]是到达第i台阶所花费的最少体力为dp[i]。是花费的总和
        }
        return dp[cost.length];//返回最后即可

    }
}

LeetCode 746.使用最小花费爬楼梯_i++


标签:下标,746,int,台阶,15,cost,爬楼梯,LeetCode,dp
From: https://blog.51cto.com/u_15806469/6317862

相关文章

  • leetcode1493
    递归:1.记pre[i]为以i位置结尾的连续1长度。 pre[i]=0;ai=0pre[i]=pre[i-1]+1;ai=1记suf[i]为以位置i开头的连续1长度;suf[i]=0;ai=0suf[i]=suf[i+1]+1;ai=1计算删掉i位置的连续1的长度为pre[i-1]+suf[i+1],再枚举每个位置找出最大的数返回。ans=max(pre[n-2],suf[1]);//......
  • leetcode 23. 合并 K 个升序链表
    题目链接:https://leetcode.cn/problems/merge-k-sorted-lists/第一种写法,不断将未排序的链表插入到一个已经排序的链表中。这样写的问题在于,当未排序的链表逐渐变的很大时,每插入一个新链表,都会来一次O(kn),总时间复杂度为O(k²n)我们可以通过分治,快速的消灭未排序链表个数,这样可......
  • #yyds干货盘点# LeetCode程序员面试金典:将有序数组转换为二叉搜索树
    题目:给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过1」的二叉树。 示例1:输入:nums=[-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9]......
  • #yyds干货盘点# LeetCode程序员面试金典:最大间距
    1.简述:给定一个无序的数组 nums,返回数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于2,则返回0。您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。 示例 1:输入:nums=[3,6,9,1]输出:3解释:排序后的数组是[1,3,6,9],其中相邻元素(3,6)......
  • LeetCode 105. 从前序与中序遍历序列构造二叉树
    题目链接:LeetCode105.从前序与中序遍历序列构造二叉树题意:给定两个整数数组 preorder和inorder ,其中 preorder是二叉树的先序遍历,inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。解题思路:模拟手动构建的过程,注意下标的变化。完整代码如下:/***Defini......
  • LeetCode 113. 路径总和 II
    题目链接:LeetCode113.路径总和II题意:给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。解题思路:与LeetCode112.路径总和相似,在遍历过程中,记录遍历过的每一个点即可。递归法递归代码:varres[][]intva......
  • LeetCode 513. 找树左下角的值
    题目链接:LeetCode513.找树左下角的值题意:给定一个二叉树的根节点root,请找出该二叉树的最底层最左边节点的值。解题思路:首先明确本题是要找最底层的最左边的节点,因此迭代法,可以采用层次遍历,res每次记录每一层的最左边的节点,当遍历结束时,res表示的就是最底层,最左边的节......
  • LeetCode/子数组的最小值之和
    给定一个整数数组arr,找到min(b)的总和,其中b的范围为arr的每个(连续)子数组。1.单调栈假如要遍历所有区间,哪怕可以直接获得最小值,时间复杂度也是O(n2)这里我们不逐个找对应区间,而是计算每个值对区间的贡献,可以将时间复杂度降到O(n)其实也就找遍历时当前值的左边界和右边界,在......
  • [LeetCode] 1079. Letter Tile Possibilities
    Youhave n  tiles,whereeachtilehasoneletter tiles[i] printedonit.Return thenumberofpossiblenon-emptysequencesofletters youcanmakeusingthelettersprintedonthose tiles.Example1:Input:tiles="AAB"Output:8Explanation:......
  • LeetCode/完成任务的最少工作时间段
    一个工作时间段可以连续工作sessiontime个小时给你任务列表task,task[i]表示第i项任务花费时间求完成全部工作所需最小时间段(可以按任意顺序完成任务)1.回溯法回溯时按任务下标推进,边界条件为任务下标等于任务长度同时要记录回溯几个状态,分别是当前任务下标、已用时间段、各......