題目:
對於非負整數 x 而言,x 的陣列形式是每位數字按從左到右的順序形成的陣列。例如,如果 x = 1231,那麼其陣列形式為 [1,2,3,1]。給定非負整數 x 的陣列形式 a,返回整數 x+k 的陣列形式。
示例 1:
輸入:a = [1,2,0,0], k = 34
輸出:[1,2,3,4]
解釋:1200 + 34 = 1234
示例 2:
輸入:a = [2,7,4], k = 181
輸出:[4,5,5]
解釋:274 + 181 = 455
示例 3:
輸入:a = [2,1,5], k = 806
輸出:[1,0,2,1]
解釋:215 + 806 = 1021
示例 4:
輸入: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
逐位相加法
就是把k的每一位分別和陣列a對應的元素相加,如果相加結果sum小於10,則直接存入集合,若大於10,則先將k/10後加1(相當於進製),然後把sum-10後存入集合,每一位都存入後對集合進行逆序可得最終結果。
按照這個思路寫如下**:
public list
addtoarrayform
(int
a,int k)
else
}//逆序
collections.
reverse
(list)
;return list;
}
但是執行示例3後結果為[0,2,1],檢查後發現是因為for迴圈只有a的長度個,而a組成的數和k相加後得到的數的位數大於a的長度個,因此最後一位沒有被加進集合。
可以在最後增加乙個for迴圈:
for
(;k>
0; k/=10)
如果k>0,則意味著還有元素沒有被新增進集合,直接把k的每一位數按順序新增進去。 陣列形式的整數加法
對於非負整數 x 而言,x 的陣列形式是每位數字按從左到右的順序形成的陣列。例如,如果 x 1231,那麼其陣列形式為 1,2,3,1 給定非負整數 x 的陣列形式 a,返回整數 x k 的陣列形式。示例 1 輸入 a 1,2,0,0 k 34 輸出 1,2,3,4 解釋 1200 34 1234 ...
陣列形式的整數加法
對於非負整數 x 而言,x 的陣列形式是每位數字按從左到右的順序形成的陣列。例如,如果 x 1231,那麼其陣列形式為 1,2,3,1 給定非負整數 x 的陣列形式 a,返回整數 x k 的陣列形式。解題思路 此題是用乙個數的陣列形式 乙個整數,返回和的陣列形式。模擬加法進行逐位相加,從低位向高位相...
陣列形式的整數加法
題目 對於非負整數 x 而言,x 的陣列形式是每位數字按從左到右的順序形成的陣列。例如,如果 x 1231,那麼其陣列形式為 1,2,3,1 給定非負整數 x 的陣列形式 a,返回整數 x k 的陣列形式。示例 1 輸入 a 1,2,0,0 k 34 輸出 1,2,3,4 解釋 1200 34 12...