-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAddToArrayFormOfInteger.kt
31 lines (30 loc) · 1.04 KB
/
AddToArrayFormOfInteger.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.namanh.array
/**
* https://leetcode.com/problems/add-to-array-form-of-integer
* The array-form of an integer num is an array representing its digits in left to right order.
* For example, for num = 1321, the array form is [1,3,2,1].
* Given num, the array-form of an integer, and an integer k, return the array-form of the integer num + k.
*/
object AddToArrayFormOfInteger {
fun addToArrayForm(num: IntArray, k: Int): List<Int> {
var kOrigin = k
val result = mutableListOf<Int>()
var remain = 0
for (i in num.size - 1 downTo 0) {
val kNum = kOrigin % 10
kOrigin /= 10
val newNum = num[i] + kNum + remain
result.add(newNum % 10)
remain = newNum / 10
}
while (kOrigin > 0) {
val kNum = kOrigin % 10
kOrigin /= 10
val newNum = kNum + remain
result.add(newNum % 10)
remain = newNum / 10
}
if (remain > 0) result.add(remain)
return result.reversed()
}
}