題? ? 目
【資料圖】
給你兩個(gè)非空的鏈表,表示兩個(gè)非負(fù)的整數(shù)。它們每位數(shù)字都是按照逆序的方式存儲(chǔ)的,并且每個(gè)節(jié)點(diǎn)只能存儲(chǔ)一位數(shù)字。
請(qǐng)你將兩個(gè)數(shù)相加,并以相同形式返回一個(gè)表示和的鏈表。
你可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開頭。
樣? ? 例
示例 1:
輸入:l1 = [2,4,3], l2 = [5,6,4]
輸出:[7,0,8]
解釋:342 + 465 = 807.
示例 2:
輸入:l1 = [0], l2 = [0]
輸出:[0]
示例 3:
輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
輸出:[8,9,9,9,0,0,0,1]
解決方案一
遵循加法法則,設(shè)置進(jìn)位項(xiàng),從低位到高位逐位相加
1568/1568 cases passed (32 ms)
Your runtime beats % of cpp submissions
Your memory usage beats % of cpp submissions
解決方案二
利用遞歸將對(duì)應(yīng)位數(shù)相加,最后添加進(jìn)位項(xiàng)。
1568/1568 cases passed (56 ms)
Your runtime beats % of cpp submissions
Your memory usage beats % of cpp submissions
總結(jié)
REVIEW
兩數(shù)相加的較為基礎(chǔ),核心就是掌握相加的規(guī)律,方案一使用的是常規(guī)的思想,從低位到高位,對(duì)應(yīng)數(shù)值相加并加上進(jìn)位,即可得到相加之后的結(jié)果,但是代碼雖然簡(jiǎn)單易懂,但是較為繁瑣。方案二使用的是迭代,將對(duì)應(yīng)位數(shù)相加和低位進(jìn)位項(xiàng)分開進(jìn)行,先進(jìn)行數(shù)值相加,再加上進(jìn)位,代碼更加簡(jiǎn)潔。
THOUSAND TIMES
END
歡迎關(guān)注公眾號(hào)
我會(huì)分享更多有趣的知識(shí)
關(guān)鍵詞: