Skip to content

Commit 7d9380e

Browse files
committedJun 14, 2021
feat: update golang solution to lcof problems: No.60,62,63
1 parent 9db5b2f commit 7d9380e

File tree

6 files changed

+107
-0
lines changed

6 files changed

+107
-0
lines changed
 

‎lcof/面试题60. n个骰子的点数/README.md

+22
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,28 @@ var twoSum = function (n) {
129129
};
130130
```
131131

132+
### **Go**
133+
134+
```go
135+
func dicesProbability(n int) []float64 {
136+
dp := make([]float64, 7)
137+
for i := 1; i <= 6; i++ {
138+
dp[i] = 1.0 / 6.0
139+
}
140+
for i := 2; i <= n; i++ {
141+
n := len(dp)
142+
tmp := make([]float64, 6*i+1)
143+
for j := 0; j < n; j++ {
144+
for k := 1; k <= 6; k++ {
145+
tmp[j+k] += dp[j] / 6.0
146+
}
147+
}
148+
dp = tmp
149+
}
150+
return dp[n:]
151+
}
152+
```
153+
132154
### **...**
133155

134156
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
func dicesProbability(n int) []float64 {
2+
dp := make([]float64, 7)
3+
for i := 1; i <= 6; i++ {
4+
dp[i] = 1.0 / 6.0
5+
}
6+
for i := 2; i <= n; i++ {
7+
n := len(dp)
8+
tmp := make([]float64, 6*i+1)
9+
for j := 0; j < n; j++ {
10+
for k := 1; k <= 6; k++ {
11+
tmp[j+k] += dp[j] / 6.0
12+
}
13+
}
14+
dp = tmp
15+
}
16+
return dp[n:]
17+
}

‎lcof/面试题62. 圆圈中最后剩下的数字/README.md

+12
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,18 @@ var lastRemaining = function (n, m) {
105105
};
106106
```
107107

108+
### **Go**
109+
110+
```go
111+
func lastRemaining(n int, m int) int {
112+
f := 0
113+
for i := 2; i <= n; i++ {
114+
f = (f + m) % i
115+
}
116+
return f
117+
}
118+
```
119+
108120
### **...**
109121

110122
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
func lastRemaining(n int, m int) int {
2+
f := 0
3+
for i := 2; i <= n; i++ {
4+
f = (f + m) % i
5+
}
6+
return f
7+
}

‎lcof/面试题63. 股票的最大利润/README.md

+27
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,33 @@ public:
113113
};
114114
```
115115

116+
### **Go**
117+
118+
```go
119+
func maxProfit(prices []int) int {
120+
mi, mx := math.MaxInt32, 0
121+
for _, price := range prices {
122+
mx = max(mx, price-mi)
123+
mi = min(mi, price)
124+
}
125+
return mx
126+
}
127+
128+
func min(x, y int) int {
129+
if x < y {
130+
return x
131+
}
132+
return y
133+
}
134+
135+
func max(x, y int) int {
136+
if x > y {
137+
return x
138+
}
139+
return y
140+
}
141+
```
142+
116143
### **...**
117144

118145
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
func maxProfit(prices []int) int {
2+
mi, mx := math.MaxInt32, 0
3+
for _, price := range prices {
4+
mx = max(mx, price-mi)
5+
mi = min(mi, price)
6+
}
7+
return mx
8+
}
9+
10+
func min(x, y int) int {
11+
if x < y {
12+
return x
13+
}
14+
return y
15+
}
16+
17+
func max(x, y int) int {
18+
if x > y {
19+
return x
20+
}
21+
return y
22+
}

0 commit comments

Comments
 (0)
Please sign in to comment.