Add To Array Form Of Integer

题目描述

数组形式的整数加法

对于非负整数X而言,X的数组形式是每位数字按从左到右顺序形成的数组。例如1231的数组形式为[1,2,3,4]

给定非负整数X的数组形式A,返回整数X+K的数组形式。

示例:

输入:A = [1, 2, 0, 0], K = 34
输出:[1, 2, 3, 4]

解法

解法一:

  • 时间复杂度:O(max(m, n))m表示A的长度,n表示K的长度

  • 空间复杂度:O(max(m, n))

func addToArrayForm(A []int, K int) []int {
    for i := len(A) - 1; i >= 0; i-- {
        A[i] += K % 10
        K /= 10
        if A[i] >= 10 {
            K++
            A[i] -= 10
        }
    }

    for K > 0 {
        A = append([]int{K % 10}, A...)
        K /= 10
    }

    return A
}

解法二:

  • 时间复杂度:O(max(m, n))

  • 空间复杂度:O(max(m, n))

func addToArrayForm(A []int, K int) []int {
    for i := len(A) - 1; i >= 0; i-- {
        K += A[i]
        A[i] = K % 10
        K /= 10
    }

    for K > 0 {
        A = append([]int{K % 10}, A...)
        K /= 10
    }
    return A
}

Last updated

Was this helpful?