Skip to content

Commit 8948c62

Browse files
refactor 256
1 parent 90ac6d6 commit 8948c62

File tree

1 file changed

+12
-19
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+12
-19
lines changed
Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,19 @@
11
package com.fishercoder.solutions;
22

3-
/**
4-
* There are a row of n houses, each house can be painted with one of the three colors: red, blue or green. The cost of painting each house with a certain color is different. You have to paint all the houses such that no two adjacent houses have the same color.
5-
6-
The cost of painting each house with a certain color is represented by a n x 3 cost matrix. For example, costs[0][0] is the cost of painting house 0 with color red; costs[1][2] is the cost of painting house 1 with color green, and so on... Find the minimum cost to paint all houses.
7-
8-
Note:
9-
All costs are positive integers.
10-
*/
113
public class _256 {
124

13-
public int minCost(int[][] costs) {
14-
if (costs == null || costs.length == 0) {
15-
return 0;
5+
public static class Solution1 {
6+
public int minCost(int[][] costs) {
7+
if (costs == null || costs.length == 0) {
8+
return 0;
9+
}
10+
for (int i = 1; i < costs.length; i++) {
11+
costs[i][0] += Math.min(costs[i - 1][1], costs[i - 1][2]);
12+
costs[i][1] += Math.min(costs[i - 1][0], costs[i - 1][2]);
13+
costs[i][2] += Math.min(costs[i - 1][1], costs[i - 1][0]);
14+
}
15+
int n = costs.length - 1;
16+
return Math.min(Math.min(costs[n][0], costs[n][1]), costs[n][2]);
1617
}
17-
for (int i = 1; i < costs.length; i++) {
18-
costs[i][0] += Math.min(costs[i - 1][1], costs[i - 1][2]);
19-
costs[i][1] += Math.min(costs[i - 1][0], costs[i - 1][2]);
20-
costs[i][2] += Math.min(costs[i - 1][1], costs[i - 1][0]);
21-
}
22-
int n = costs.length - 1;
23-
return Math.min(Math.min(costs[n][0], costs[n][1]), costs[n][2]);
2418
}
25-
2619
}

0 commit comments

Comments
 (0)