倒序的數字進行相加;
數字進行倒序還算是簡單的,因為我們正常的運算也是從按照這個順序,正好可以方便計算;
實現中的兩個方法是一樣的,不太懂為啥下面的執行時間查這麼多;
classsolution(object):
defaddtwonumbers(self, l1, l2):
"""執行用時 : 128 ms, 在add two numbers的python提交中擊敗了7.75% 的使用者
記憶體消耗 : 11 mb, 在add two numbers的python提交中擊敗了0.86% 的使用者
:type l1: listnode
:type l2: listnode
:rtype: listnode
"""dummy = cur = listnode(0)
is_decimal = false
while
l1and
l2:is_decimal, value = self.get_add_result(val1=l1.val, val2=l2.val, is_decimal=is_decimal)
node = listnode(value)
cur.next = node
cur = cur.next
l1 = l1.next
l2 = l2.next
while
l1:is_decimal, value = self.get_add_result(val1=l1.val, is_decimal=is_decimal)
node = listnode(value)
cur.next = node
cur = cur.next
l1 = l1.next
while
l2:is_decimal, value = self.get_add_result(val2=l2.val, is_decimal=is_decimal)
node = listnode(value)
cur.next = node
cur = cur.next
l2 = l2.next
ifis_decimal:
node = listnode(1)
cur.next = node
return
dummy.next
def
get_add_result(self, val1=0, val2=0, is_decimal=false):
value = val1
+val2
+int(is_decimal)
ifvalue
>= 10:
value %= 10
is_decimal = true
else:
is_decimal = false
return
is_decimal, value
def
addtwonumbers2(self, l1, l2):
"""執行用時 : 84 ms, 在add two numbers的python提交中擊敗了85.84% 的使用者
記憶體消耗 : 11 mb, 在add two numbers的python提交中擊敗了0.86% 的使用者
:type l1: listnode
:type l2: listnode
:rtype: listnode
"""dummy = cur = listnode(0)
digit = 0
while
l1or
l2or
digit:
ifl1:
digit += l1.val
l1 = l1.next
ifl2:
digit += l2.val
l2 = l2.next
node = listnode(digit
%10)
cur.next = node
cur = cur.next
digit //= 10
return
dummy.next
如果這個鍊錶儲存的數字的順序是正常的話,那麼有兩種方法:
將鍊錶進行倒序,接著就和上面的實現一樣了;
利用棧將兩個鍊錶的值倒序取出來,思想和上面的思想一樣;
2 兩數相加
平均星級 4.45 239次評分 2018年2月2日 28.6k次 預覽 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...
2 兩數相加
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807 definition for singly l...
2 兩數相加
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807演算法 我們首先從最低有效位也就是列表 l1和...