题解 | 最小花费爬楼梯

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param cost int整型一维数组 
     * @return int整型
     */
    public int minCostClimbingStairs (int[] cost) {
        // write code here
        int res = 0;
        Map<Integer,Integer> result = new HashMap();
       return climbingStairs(cost, cost.length,res,result);
    }

       public int climbingStairs (int[] cost, int n ,int res,Map<Integer,Integer> result) {
        if(result.get(n) != null) {
            return result.get(n);
        }
        if (n == 0) {
            return res;
        }
        if (n == 1) {
            return res;
        }
 int resu = Math.min(climbingStairs(cost,n-1, res,result) + cost[n-1] , res + climbingStairs(cost,n-2, res,result) + cost[n-2]);
 result.put(n, resu);
        // write code here

        return resu;
    }
}

全部评论

相关推荐

02-08 15:53
门头沟学院 Java
CoderEcho:让公司知道便宜没好货
点赞 评论 收藏
分享
01-27 09:51
邢台学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务