题解 | #最小花费爬楼梯,dp,空间O(n)#

最小花费爬楼梯

http://www.nowcoder.com/practice/6fe0302a058a4e4a834ee44af88435c7

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param cost int整型一维数组 
     * @return int整型
     */
    public int minCostClimbingStairs (int[] cost) {
        if(cost.length <= 2) return 0 ;
        //dp[i]表示爬到楼梯i所要花费的最小代价,楼顶就是楼梯cost.length
        int dp[] = new int[2] ;
        int l_l = 0 ;
        int l = 1 ;
        dp[l_l] = 0 ;
        dp[l] = 0 ; 
        for(int i = 2 ; i <= cost.length ; i ++) {
            dp[(l + 1) % 2] = Math.min(dp[l] + cost[i-1] , dp[l_l] + cost[i-2]) ;
            l = (l + 1) % 2 ;
            l_l = (l_l + 1) % 2 ;
        }
        return dp[l] ;
    }
}

一个菜鸟的算法刷题记录 文章被收录于专栏

分享一个菜鸟的成长记录

全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
躺尸修仙中:因为很多92的也去卷中小厂,反正投递简历不要钱,面试不要钱,时间冲突就推,不冲突就面试积累经验
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务