-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path0256-paint-house.js
More file actions
23 lines (19 loc) · 938 Bytes
/
0256-paint-house.js
File metadata and controls
23 lines (19 loc) · 938 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* Paint House
* Time Complexity: O(n)
* Space Complexity: O(1)
*/
var minCost = function (costs) {
if (!costs || costs.length === 0) {
return 0;
}
let previousHouseMinCosts = [...costs[0]];
let totalHouses = costs.length;
for (let currentHouseIndex = 1; currentHouseIndex < totalHouses; currentHouseIndex++) {
let currentHouseRedCost = costs[currentHouseIndex][0] + Math.min(previousHouseMinCosts[1], previousHouseMinCosts[2]);
let currentHouseBlueCost = costs[currentHouseIndex][1] + Math.min(previousHouseMinCosts[0], previousHouseMinCosts[2]);
let currentHouseGreenCost = costs[currentHouseIndex][2] + Math.min(previousHouseMinCosts[0], previousHouseMinCosts[1]);
previousHouseMinCosts = [currentHouseRedCost, currentHouseBlueCost, currentHouseGreenCost];
}
return Math.min(previousHouseMinCosts[0], previousHouseMinCosts[1], previousHouseMinCosts[2]);
};