Skip to content

Commit 3afc34b

Browse files
committedApr 11, 2021
feat: update leetcode solutions: No.0264. Ugly Number II
1 parent b051c4e commit 3afc34b

File tree

6 files changed

+148
-3
lines changed

6 files changed

+148
-3
lines changed
 

‎index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
codeFontFamily: 'Roboto Mono, Monaco, courier, monospace',
4646
bodyFontSize: '15px',
4747
dark: {
48-
background: 'rgb(28,32,34)',
48+
background: '#191919',
4949
highlightColor: '#e96900',
50-
codeBackgroundColor: 'rgb(34,39,46)',
50+
codeBackgroundColor: '#202020',
5151
codeTextColor: '#b4b4b4',
5252
},
5353
light: {

‎lcof/面试题49. 丑数/README.md

+31
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,37 @@ var nthUglyNumber = function (n) {
127127
};
128128
```
129129

130+
### **Go**
131+
132+
```go
133+
func nthUglyNumber(n int) int {
134+
dp := make([]int, n)
135+
dp[0] = 1
136+
p2, p3, p5 := 0, 0, 0
137+
for i := 1; i < n; i++ {
138+
next2, next3, next5 := dp[p2]*2, dp[p3]*3, dp[p5]*5
139+
dp[i] = min(next2, min(next3, next5))
140+
if dp[i] == next2 {
141+
p2++
142+
}
143+
if dp[i] == next3 {
144+
p3++
145+
}
146+
if dp[i] == next5 {
147+
p5++
148+
}
149+
}
150+
return dp[n-1]
151+
}
152+
153+
func min(a, b int) int {
154+
if a < b {
155+
return a
156+
}
157+
return b
158+
}
159+
```
160+
130161
### **...**
131162

132163
```

‎lcof/面试题49. 丑数/Solution.go

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
func nthUglyNumber(n int) int {
2+
dp := make([]int, n)
3+
dp[0] = 1
4+
p2, p3, p5 := 0, 0, 0
5+
for i := 1; i < n; i++ {
6+
next2, next3, next5 := dp[p2]*2, dp[p3]*3, dp[p5]*5
7+
dp[i] = min(next2, min(next3, next5))
8+
if dp[i] == next2 {
9+
p2++
10+
}
11+
if dp[i] == next3 {
12+
p3++
13+
}
14+
if dp[i] == next5 {
15+
p5++
16+
}
17+
}
18+
return dp[n-1]
19+
}
20+
21+
func min(a, b int) int {
22+
if a < b {
23+
return a
24+
}
25+
return b
26+
}

‎solution/0200-0299/0264.Ugly Number II/README.md

+32-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<li><code>n</code>&nbsp;<strong>不超过</strong>1690。</li>
2323
</ol>
2424

25-
[面试题 49. 丑数](/lcof/面试题49.%20丑数/README.md)
25+
[面试题 49. 丑数](/lcof/面试题49.%20丑数/README.md)
2626

2727
## 解法
2828

@@ -130,6 +130,37 @@ var nthUglyNumber = function (n) {
130130
};
131131
```
132132

133+
### **Go**
134+
135+
```go
136+
func nthUglyNumber(n int) int {
137+
dp := make([]int, n)
138+
dp[0] = 1
139+
p2, p3, p5 := 0, 0, 0
140+
for i := 1; i < n; i++ {
141+
next2, next3, next5 := dp[p2]*2, dp[p3]*3, dp[p5]*5
142+
dp[i] = min(next2, min(next3, next5))
143+
if dp[i] == next2 {
144+
p2++
145+
}
146+
if dp[i] == next3 {
147+
p3++
148+
}
149+
if dp[i] == next5 {
150+
p5++
151+
}
152+
}
153+
return dp[n-1]
154+
}
155+
156+
func min(a, b int) int {
157+
if a < b {
158+
return a
159+
}
160+
return b
161+
}
162+
```
163+
133164
### **...**
134165

135166
```

‎solution/0200-0299/0264.Ugly Number II/README_EN.md

+31
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,37 @@ var nthUglyNumber = function (n) {
115115
};
116116
```
117117

118+
### **Go**
119+
120+
```go
121+
func nthUglyNumber(n int) int {
122+
dp := make([]int, n)
123+
dp[0] = 1
124+
p2, p3, p5 := 0, 0, 0
125+
for i := 1; i < n; i++ {
126+
next2, next3, next5 := dp[p2]*2, dp[p3]*3, dp[p5]*5
127+
dp[i] = min(next2, min(next3, next5))
128+
if dp[i] == next2 {
129+
p2++
130+
}
131+
if dp[i] == next3 {
132+
p3++
133+
}
134+
if dp[i] == next5 {
135+
p5++
136+
}
137+
}
138+
return dp[n-1]
139+
}
140+
141+
func min(a, b int) int {
142+
if a < b {
143+
return a
144+
}
145+
return b
146+
}
147+
```
148+
118149
### **...**
119150

120151
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
func nthUglyNumber(n int) int {
2+
dp := make([]int, n)
3+
dp[0] = 1
4+
p2, p3, p5 := 0, 0, 0
5+
for i := 1; i < n; i++ {
6+
next2, next3, next5 := dp[p2]*2, dp[p3]*3, dp[p5]*5
7+
dp[i] = min(next2, min(next3, next5))
8+
if dp[i] == next2 {
9+
p2++
10+
}
11+
if dp[i] == next3 {
12+
p3++
13+
}
14+
if dp[i] == next5 {
15+
p5++
16+
}
17+
}
18+
return dp[n-1]
19+
}
20+
21+
func min(a, b int) int {
22+
if a < b {
23+
return a
24+
}
25+
return b
26+
}

0 commit comments

Comments
 (0)