1.动态规划
int minCost(vector<vector<int>>& costs) {
int n=costs.size();
if(n==0) return 0;
for(int i=n-2;i>=0;i--){
costs[i][0]+=min(costs[i+1][1],costs[i+1][2]);
costs[i][1]+=min(costs[i+1][0],costs[i+1][2]);
costs[i][2]+=min(costs[i+1][1],costs[i+1][0]);
}
return min(costs[0][0],min(costs[0][1],costs[0][2]));
}
2.自顶向下递归 (实际上却是自底向上计算的)
3.记忆化递归