Leetcode - Add to Array-Form of Integer
https://leetcode.com/problems/add-to-array-form-of-integer/
For a non-negative integer X, the array-form of X is an array of its digits in left to right order. For example, if X = 1231, then the array form is [1,2,3,1].
Given the array-form A of a non-negative integer X, return the array-form of the integer X+K.
Example 1:
Input: A = [1,2,0,0], K = 34 Output: [1,2,3,4] Explanation: 1200 + 34 = 1234
func addToArrayForm(A []int, K int) []int {
carry := 0
for i := len(A)-1; i >= 0; i-- {
k := K % 10
K /= 10
sum := A[i] + carry + k
carry = 0
if sum > 9 {
carry = 1
sum -= 10
}
A[i] = sum
}
if K == 0 {
if carry == 1 {
A = append([]int{1}, A...)
}
return A
}
if carry == 1 {
K++
}
prefix := []int{}
for K > 0 {
prefix = append(prefix, K % 10)
K /= 10
}
for i := 0; i < len(prefix)/2; i++ {
prefix[i], prefix[len(prefix)-i-1] = prefix[len(prefix)-i-1], prefix[i]
}
return append(prefix, A...)
}
评论 (0)