Skip to content
This repository was archived by the owner on Sep 20, 2023. It is now read-only.

Commit a77b257

Browse files
committed
989 finish
1 parent eb59b9c commit a77b257

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

Algorithms/0989.add-to-array-form-of-integer/add-to-array-form-of-integer.go

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
package problem0989
22

33
func addToArrayForm(A []int, K int) []int {
4-
reverse(A)
5-
A[0] += K
64
size := len(A)
7-
for i := 0; i+1 < size && A[i] > 9; i++ {
8-
A[i+1] += A[i] / 10
5+
A[size-1] += K
6+
for i := size - 1; i > 0 && A[i] > 9; i-- {
7+
A[i-1] += A[i] / 10
98
A[i] %= 10
109
}
11-
var tail int
12-
for A[size-1] > 9 {
13-
A[size-1], tail = A[size-1]%10, A[size-1]/10
14-
A = append(A, tail)
15-
size++
10+
11+
if A[0] < 10 {
12+
return A
13+
}
14+
15+
A0 := num2ints(A[0])
16+
return append(A0, A[1:]...)
17+
}
18+
19+
func num2ints(n int) []int {
20+
res := make([]int, 0, 8)
21+
for n > 0 {
22+
res = append(res, n%10)
23+
n /= 10
1624
}
17-
reverse(A)
18-
return A
25+
reverse(res)
26+
return res
1927
}
2028

2129
func reverse(A []int) {

0 commit comments

Comments
 (0)