LeetCode in Kotlin

989. Add to Array-Form of Integer

Easy

The array-form of an integer num is an array representing its digits in left to right order.

Given num, the array-form of an integer, and an integer k, return the array-form of the integer num + k.

Example 1:

Input: num = [1,2,0,0], k = 34

Output: [1,2,3,4]

Explanation: 1200 + 34 = 1234

Example 2:

Input: num = [2,7,4], k = 181

Output: [4,5,5]

Explanation: 274 + 181 = 455

Example 3:

Input: num = [2,1,5], k = 806

Output: [1,0,2,1]

Explanation: 215 + 806 = 1021

Constraints:

Solution

@Suppress("NAME_SHADOWING")
class Solution {
    fun addToArrayForm(num: IntArray, k: Int): List<Int?> {
        var k = k
        val result = ArrayList<Int?>()
        var carry = 0
        for (i in num.indices.reversed()) {
            val temp = num[i] + k % 10 + carry
            result.add(temp % 10)
            carry = temp / 10
            k /= 10
        }
        while (k > 0) {
            val t = k % 10 + carry
            result.add(t % 10)
            carry = t / 10
            k /= 10
        }
        if (carry == 1) {
            result.add(1)
        }
        result.reverse()
        return result
    }
}