解法一:高精度加法
先相加求和,再处理进位的问题。
import java.util.*;class Solution {public List<Integer> addToArrayForm(int[] A, int K) {List<Integer> ans = new ArrayList<>();for (int i = A.length - 1; i >= 0; --i) {ans.add(A[i]);}// 求和for (int i = 0; K > 0; ++i, K /= 10) {if (i < ans.size()) {ans.set(i, ans.get(i) + K % 10);} else {ans.add(K % 10);}}// 处理进位for (int i = 0; i < ans.size(); ++i) {if (ans.get(i) >= 10) {int x = ans.get(i);ans.set(i, x % 10);if (i == ans.size() - 1) {ans.add(x / 10);} else {ans.set(i + 1, ans.get(i + 1) + x / 10);}}}Collections.reverse(ans);return ans;}}
