1: class Solution {
2: public:
3: int minCost(vector<vector<int>>& costs) {
4: int n = costs.size();
5: for (int i = 1; i < n; i++) {
6: costs[i][0] += min(costs[i-1][1], costs[i-1][2]);
7: costs[i][1] += min(costs[i-1][0], costs[i-1][2]);
8: costs[i][2] += min(costs[i-1][0], costs[i-1][1]);
9: }
10: return n == 0 ? 0 : min(costs[n-1][0], min(costs[n-1][1], costs[n-1][2]));
11: }
12: };
Saturday, August 13, 2016
256. Paint House
Let costs[i][0] be the minimal cost for painting house i red, so we have costs[i][0] += min(costs[i-1][1], costs[i-1][2]). Same to blue and green.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment