Skip to content

Commit f5453a0

Browse files
committedDec 25, 2021
feat: add solutions to lc/lcof2 problems
lcof2 No.091 & lc No.0256.Paint House
1 parent fa459d4 commit f5453a0

File tree

11 files changed

+282
-3
lines changed

11 files changed

+282
-3
lines changed
 

‎lcof2/剑指 Offer II 091. 粉刷房子/README.md

+60-1
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,74 @@
5656
<!-- 这里可写当前语言的特殊实现逻辑 -->
5757

5858
```python
59-
59+
class Solution:
60+
def minCost(self, costs: List[List[int]]) -> int:
61+
r, g, b = 0, 0, 0
62+
for cost in costs:
63+
_r, _g, _b = r, g, b
64+
r = min(_g, _b) + cost[0]
65+
g = min(_r, _b) + cost[1]
66+
b = min(_r, _g) + cost[2]
67+
return min(r, g, b)
6068
```
6169

6270
### **Java**
6371

6472
<!-- 这里可写当前语言的特殊实现逻辑 -->
6573

6674
```java
75+
class Solution {
76+
public int minCost(int[][] costs) {
77+
int r = 0, g = 0, b = 0;
78+
for (int[] cost : costs) {
79+
int _r = r, _g = g, _b = b;
80+
r = Math.min(_g, _b) + cost[0];
81+
g = Math.min(_r, _b) + cost[1];
82+
b = Math.min(_r, _g) + cost[2];
83+
}
84+
return Math.min(r, Math.min(g, b));
85+
}
86+
}
87+
```
88+
89+
### **C++**
90+
91+
```cpp
92+
class Solution {
93+
public:
94+
int minCost(vector<vector<int>>& costs) {
95+
int r = 0, g = 0, b = 0;
96+
for (auto& cost : costs) {
97+
int _r = r, _g = g, _b = b;
98+
r = min(_g, _b) + cost[0];
99+
g = min(_r, _b) + cost[1];
100+
b = min(_r, _g) + cost[2];
101+
}
102+
return min(r, min(g, b));
103+
}
104+
};
105+
```
67106
107+
### **Go**
108+
109+
```go
110+
func minCost(costs [][]int) int {
111+
r, g, b := 0, 0, 0
112+
for _, cost := range costs {
113+
_r, _g, _b := r, g, b
114+
r = min(_g, _b) + cost[0]
115+
g = min(_r, _b) + cost[1]
116+
b = min(_r, _g) + cost[2]
117+
}
118+
return min(r, min(g, b))
119+
}
120+
121+
func min(x, y int) int {
122+
if x < y {
123+
return x
124+
}
125+
return y
126+
}
68127
```
69128

70129
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public:
3+
int minCost(vector<vector<int>>& costs) {
4+
int r = 0, g = 0, b = 0;
5+
for (auto& cost : costs) {
6+
int _r = r, _g = g, _b = b;
7+
r = min(_g, _b) + cost[0];
8+
g = min(_r, _b) + cost[1];
9+
b = min(_r, _g) + cost[2];
10+
}
11+
return min(r, min(g, b));
12+
}
13+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
func minCost(costs [][]int) int {
2+
r, g, b := 0, 0, 0
3+
for _, cost := range costs {
4+
_r, _g, _b := r, g, b
5+
r = min(_g, _b) + cost[0]
6+
g = min(_r, _b) + cost[1]
7+
b = min(_r, _g) + cost[2]
8+
}
9+
return min(r, min(g, b))
10+
}
11+
12+
func min(x, y int) int {
13+
if x < y {
14+
return x
15+
}
16+
return y
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution {
2+
public int minCost(int[][] costs) {
3+
int r = 0, g = 0, b = 0;
4+
for (int[] cost : costs) {
5+
int _r = r, _g = g, _b = b;
6+
r = Math.min(_g, _b) + cost[0];
7+
g = Math.min(_r, _b) + cost[1];
8+
b = Math.min(_r, _g) + cost[2];
9+
}
10+
return Math.min(r, Math.min(g, b));
11+
}
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def minCost(self, costs: List[List[int]]) -> int:
3+
r, g, b = 0, 0, 0
4+
for cost in costs:
5+
_r, _g, _b = r, g, b
6+
r = min(_g, _b) + cost[0]
7+
g = min(_r, _b) + cost[1]
8+
b = min(_r, _g) + cost[2]
9+
return min(r, g, b)

‎solution/0200-0299/0256.Paint House/README.md

+60-1
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,74 @@
3535
<!-- 这里可写当前语言的特殊实现逻辑 -->
3636

3737
```python
38-
38+
class Solution:
39+
def minCost(self, costs: List[List[int]]) -> int:
40+
r, g, b = 0, 0, 0
41+
for cost in costs:
42+
_r, _g, _b = r, g, b
43+
r = min(_g, _b) + cost[0]
44+
g = min(_r, _b) + cost[1]
45+
b = min(_r, _g) + cost[2]
46+
return min(r, g, b)
3947
```
4048

4149
### **Java**
4250

4351
<!-- 这里可写当前语言的特殊实现逻辑 -->
4452

4553
```java
54+
class Solution {
55+
public int minCost(int[][] costs) {
56+
int r = 0, g = 0, b = 0;
57+
for (int[] cost : costs) {
58+
int _r = r, _g = g, _b = b;
59+
r = Math.min(_g, _b) + cost[0];
60+
g = Math.min(_r, _b) + cost[1];
61+
b = Math.min(_r, _g) + cost[2];
62+
}
63+
return Math.min(r, Math.min(g, b));
64+
}
65+
}
66+
```
67+
68+
### **C++**
69+
70+
```cpp
71+
class Solution {
72+
public:
73+
int minCost(vector<vector<int>>& costs) {
74+
int r = 0, g = 0, b = 0;
75+
for (auto& cost : costs) {
76+
int _r = r, _g = g, _b = b;
77+
r = min(_g, _b) + cost[0];
78+
g = min(_r, _b) + cost[1];
79+
b = min(_r, _g) + cost[2];
80+
}
81+
return min(r, min(g, b));
82+
}
83+
};
84+
```
4685
86+
### **Go**
87+
88+
```go
89+
func minCost(costs [][]int) int {
90+
r, g, b := 0, 0, 0
91+
for _, cost := range costs {
92+
_r, _g, _b := r, g, b
93+
r = min(_g, _b) + cost[0]
94+
g = min(_r, _b) + cost[1]
95+
b = min(_r, _g) + cost[2]
96+
}
97+
return min(r, min(g, b))
98+
}
99+
100+
func min(x, y int) int {
101+
if x < y {
102+
return x
103+
}
104+
return y
105+
}
47106
```
48107

49108
### **...**

‎solution/0200-0299/0256.Paint House/README_EN.md

+60-1
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,72 @@ Minimum cost: 2 + 5 + 3 = 10.
4848
### **Python3**
4949

5050
```python
51-
51+
class Solution:
52+
def minCost(self, costs: List[List[int]]) -> int:
53+
r, g, b = 0, 0, 0
54+
for cost in costs:
55+
_r, _g, _b = r, g, b
56+
r = min(_g, _b) + cost[0]
57+
g = min(_r, _b) + cost[1]
58+
b = min(_r, _g) + cost[2]
59+
return min(r, g, b)
5260
```
5361

5462
### **Java**
5563

5664
```java
65+
class Solution {
66+
public int minCost(int[][] costs) {
67+
int r = 0, g = 0, b = 0;
68+
for (int[] cost : costs) {
69+
int _r = r, _g = g, _b = b;
70+
r = Math.min(_g, _b) + cost[0];
71+
g = Math.min(_r, _b) + cost[1];
72+
b = Math.min(_r, _g) + cost[2];
73+
}
74+
return Math.min(r, Math.min(g, b));
75+
}
76+
}
77+
```
78+
79+
### **C++**
80+
81+
```cpp
82+
class Solution {
83+
public:
84+
int minCost(vector<vector<int>>& costs) {
85+
int r = 0, g = 0, b = 0;
86+
for (auto& cost : costs) {
87+
int _r = r, _g = g, _b = b;
88+
r = min(_g, _b) + cost[0];
89+
g = min(_r, _b) + cost[1];
90+
b = min(_r, _g) + cost[2];
91+
}
92+
return min(r, min(g, b));
93+
}
94+
};
95+
```
5796
97+
### **Go**
98+
99+
```go
100+
func minCost(costs [][]int) int {
101+
r, g, b := 0, 0, 0
102+
for _, cost := range costs {
103+
_r, _g, _b := r, g, b
104+
r = min(_g, _b) + cost[0]
105+
g = min(_r, _b) + cost[1]
106+
b = min(_r, _g) + cost[2]
107+
}
108+
return min(r, min(g, b))
109+
}
110+
111+
func min(x, y int) int {
112+
if x < y {
113+
return x
114+
}
115+
return y
116+
}
58117
```
59118

60119
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public:
3+
int minCost(vector<vector<int>>& costs) {
4+
int r = 0, g = 0, b = 0;
5+
for (auto& cost : costs) {
6+
int _r = r, _g = g, _b = b;
7+
r = min(_g, _b) + cost[0];
8+
g = min(_r, _b) + cost[1];
9+
b = min(_r, _g) + cost[2];
10+
}
11+
return min(r, min(g, b));
12+
}
13+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
func minCost(costs [][]int) int {
2+
r, g, b := 0, 0, 0
3+
for _, cost := range costs {
4+
_r, _g, _b := r, g, b
5+
r = min(_g, _b) + cost[0]
6+
g = min(_r, _b) + cost[1]
7+
b = min(_r, _g) + cost[2]
8+
}
9+
return min(r, min(g, b))
10+
}
11+
12+
func min(x, y int) int {
13+
if x < y {
14+
return x
15+
}
16+
return y
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution {
2+
public int minCost(int[][] costs) {
3+
int r = 0, g = 0, b = 0;
4+
for (int[] cost : costs) {
5+
int _r = r, _g = g, _b = b;
6+
r = Math.min(_g, _b) + cost[0];
7+
g = Math.min(_r, _b) + cost[1];
8+
b = Math.min(_r, _g) + cost[2];
9+
}
10+
return Math.min(r, Math.min(g, b));
11+
}
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def minCost(self, costs: List[List[int]]) -> int:
3+
r, g, b = 0, 0, 0
4+
for cost in costs:
5+
_r, _g, _b = r, g, b
6+
r = min(_g, _b) + cost[0]
7+
g = min(_r, _b) + cost[1]
8+
b = min(_r, _g) + cost[2]
9+
return min(r, g, b)

0 commit comments

Comments
 (0)