題目:陣列形式的整數加法
對於非負整數 X 而言,X 的陣列形式是每位數字按從左到右的順序形成的陣列。
例如,如果 X = 1231,那麼其陣列形式為 [1,2,3,1]。
給定非負整數 X 的陣列形式 A,返回整數 X+K 的陣列形式。
複製程式碼
示例:
輸入:A = [1,2,0,0], K = 34
輸出:[1,2,3,4]
解釋:1200 + 34 = 1234
輸入:A = [2,7,4], K = 181
輸出:[4,5,5]
解釋:274 + 181 = 455
輸入:A = [2,1,5], K = 806
輸出:[1,0,2,1]
解釋:215 + 806 = 1021
輸入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
輸出:[1,0,0,0,0,0,0,0,0,0,0]
解釋:9999999999 + 1 = 10000000000
複製程式碼
思考:
這道題可以逐位將數字加在一起。
例如274和181,可以先計算2+1,7+8,4+1。當相加結果大於等於10,就要進位,7+8=15將進位的1加到前一位的計算中去。
複製程式碼
實現:
class Solution {
public List<Integer> addToArrayForm(int[] A, int K) {
int length = A.length;
int cur = K;
List<Integer> res = new ArrayList();
int i = length;
while (--i >= 0 || cur > 0) {
if (i >= 0)
cur += A[i];
res.add(cur % 10);
cur /= 10;
}
Collections.reverse(res);
return res;
}
}複製程式碼