当前位置:网站首页>LeetCode 剑指Offer II 091 粉刷房子[动态规划] HERODING的LeetCode之路

LeetCode 剑指Offer II 091 粉刷房子[动态规划] HERODING的LeetCode之路

2022-06-25 03:54:00 HERODING23

在这里插入图片描述

解题思路:
非常基础的一道动态规划题,甚至可以直接在题中所给的costs基础上进行,把costs作为状态转移数组,cost[i][0]显然是由之前i-1的1和2颜色决定的,cost[i][1]和cost[i][2]也是同理,所以一直取每个状态的最小和,返回即可,代码如下:

class Solution {
    
public:
    int minCost(vector<vector<int>>& costs) {
    
        int n = costs.size();
        for(int i = 1; i < n; 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][0], costs[i-1][1]);
        }
        return min(costs[n-1][0], min(costs[n-1][1], costs[n-1][2]));
    }
};
原网站

版权声明
本文为[HERODING23]所创,转载请带上原文链接,感谢
https://blog.csdn.net/HERODING23/article/details/125454383