题解 | #最小花费爬楼梯,滚动数组,空间O(1)#
最小花费爬楼梯
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] ; } }
一个菜鸟的算法刷题记录 文章被收录于专栏
分享一个菜鸟的成长记录