• Leecode no.746 使用最小花费爬楼梯


    package leecode;

    /**
    * 746. 使用最小花费爬楼梯
    *
    * 数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。
    *
    * 每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。
    *
    * 请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。
    *
    *
    * @author Tang
    * @date 2021/9/15
    */
    public class MinCostClimbingStairs {


    /**
    * 动态规划
    * n :到某个台阶n
    * f(n) :到某个台阶n所需最小体力
    * f(n) = min(f(n-1) , f(n-2))
    * base: f(1) f(2)
    *
    *
    *
    * @param cost
    * @return
    */
    public int minCostClimbingStairs(int[] cost) {
    // 代表f(n-1)
    int n1 = 0;
    // 代表f(n-2)
    int n2 = 0;

    int minCost = 0;
    for(int i = 0; i <= cost.length; i++) {
    if(i == 0) {
    minCost = cost[0];
    n2 = cost[0];
    continue;
    }

    if(i == 1) {
    minCost = cost[1];
    n1 = cost[1];
    continue;
    }

    if(i == cost.length) {
    minCost = Math.min(n1, n2);
    break;
    }
    minCost = Math.min(n1, n2) + cost[i];
    n2 = n1;
    n1 = minCost;
    }

    return minCost;
    }

    public static void main(String[] args) {
    int[] cost = {1, 100, 1, 1, 1, 100, 1, 1, 100, 1};
    new MinCostClimbingStairs().minCostClimbingStairs(cost);

    }

    }
  • 相关阅读:
    View载入具体解释
    七、备忘录模式Memento(行为型模式)
    排序算法之直接插入排序
    IOS
    Matlab得到二值图像中最大连通区域
    MVC模式利用xib文件定制collectionCell
    五大算法思想—贪心算法
    jQuery鼠标悬停显示提示信息窗体
    J2EE基础总结(5)——EJB
    iOS 打开扬声器以及插入耳机的操作
  • 原文地址:https://www.cnblogs.com/ttaall/p/15272153.html
Copyright © 2020-2023  润新知