zoukankan      html  css  js  c++  java
  • 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);

    }

    }
  • 相关阅读:
    多元线性回归(pandas/scikit-learn)
    hive查询语法
    Python日志记录(Logging)
    python调用C/C++动态链接库和jython
    MacPorts的安装和使用
    python多进程(multiprocessing)
    Z-Score数据标准化处理(python代码)
    皮尔逊相关系数的计算(python代码版)
    参考书籍
    MFC 之ActiveX控件学习
  • 原文地址:https://www.cnblogs.com/ttaall/p/15272153.html
Copyright © 2011-2022 走看看