class Solution { public: int minCostClimbingStairs(vector<int>& cost) { int len=cost.size(); if(len<2) return 0; int index=2; while(index<len) { cost[index]=min(cost[index-1],cost[index-2])+cost[index];//当前楼梯只能是前两个最小花费加当前楼梯花费 index++; } return min(cost[index-1],cost[index-2]);//输出只能是最后一阶和前一阶的最小值 } };
分析:
内存还可以,因为直接修改了原来的数组,不然可以维护三个变量,也还行。