例1: 對於非負整數 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 思路 讓咱們逐位將數字加在一塊兒。舉一個例子,若是要計算 123123 與 912912 的和。咱們順次計算 3+23+二、2+12+一、1+91+9。任什麼時候候,當加法的結果大於等於 1010,咱們要將進位的 11 加入下一位的計算中去,因此最終結果等於 10351035。 算法 咱們能夠對以上的想法作一個小變化,讓它實現起來更容易 —— 咱們將整個加數加入數組表示的數的最低位。 繼續以前的例子 123+912123+912,咱們把它表示成 [1, 2, 3+912][1,2,3+912]。而後,咱們計算 3+912 = 9153+912=915。55 留在當前這一位,將 910/10=91910/10=91 以進位的形式加入下一位。 而後,咱們再重複這個過程,計算 [1, 2+91, 5][1,2+91,5]。咱們獲得 9393,33 留在當前位,將 90/10=990/10=9 以進位的形式加入下一位。繼而又獲得 [1+9, 3, 5][1+9,3,5],重複這個過程以後,最終獲得結果 [1, 0, 3, 5][1,0,3,5]。 public static List<Integer> addToArrayForm(int[] A, int K) { int cur = K; int i = A.length; List<Integer> result = new ArrayList<>(); while (--i >= 0 || cur > 0) { if (i >= 0) cur += A[i]; result.add(cur % 10); cur /= 10; } Collections.reverse(result); result.stream().forEach(integer -> System.out.println(integer));//測試shu'cu return result; } 例2: 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,而且它們的每一個節點只能存儲 一位 數字。 若是,咱們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 您能夠假設除了數字 0 以外,這兩個數都不會以 0 開頭。 詳解:https://leetcode-cn.com/problems/add-two-numbers/solution/liang-shu-xiang-jia-by-leetcode/