989. 数组形式的整数加法


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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-to-array-form-of-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Solution {
    public List addToArrayForm(int[] num, int k) {
        List ans = new ArrayList<>();
        int index = num.length - 1;
        int add = 0;
        while (index >= 0 && k != 0) {
            int value = add + num[index--] + k % 10;
            k /= 10;
            ans.add(value % 10);
            add = value / 10;
        }

        while (index >= 0) {
            int value = add + num[index--];
            ans.add(value % 10);
            add = value / 10;
        }

        while (k > 0) {
            int value = add + k % 10;
            k /= 10;
            ans.add(value % 10);
            add = value / 10;
        }

        if (add == 1) {
            ans.add(1);
        }

        Collections.reverse(ans);
        return ans;
    }
}

相关