給出兩個非空鍊錶用來表示兩個非負整數。其中,它們各自的位數按照逆序方式儲存,並且每個節點只能儲存一位數字。如』1 -> 2 -> 3』表示』321』。以鍊錶形式返回兩數之和。
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
defaddtwonumbers
(l1, l2)
: carry, result =
0, listnode(0)
temp = result
while l1 or l2:
x1 = l1.val if l1 else
0 x2 = l2.val if l2 else
0 s = x1 + x2 + carry
carry = s //
10 temp.
next
= listnode(s %10)
temp = temp.
next
if l1 is
notnone
and l2 is
notnone
: l1 = l1.
next
l2 = l2.
next
else
:break
if carry !=0:
# 最後乙個節點相加有進製,如5 + 5 = 10
temp.
next
= listnode(carry)
return result.
next
加法原理和乘法原理
設事件a有m種產生方式,事件b有n種產生方式,則當a和b的產生方式不重疊時,事件a或b之一 有m n種產生方式。可推廣多個事件 設事件a有m種產生方式,事件b有n種產生方式,則當a和b的產生方式彼此獨立時,事件a與b有m n種產生方式。無論事件a採用何種方式產生,都不影響事件b。可推廣多個事件 例1...
位運算 實現加法
用位運算實現加法也就是計算機用二進位制進行運算,32位的cpu只能表示32位內的數,這裡先用1位數的加法來進行,在不考慮進製的基礎上,如下 1 1 01 0 1 0 1 10 0 0很明顯這幾個表示式可以用位運算的 來代替,如下 1 1 01 0 1 0 1 10 0 0這樣我們就完成了簡單的一位數...
位運算 實現加法
用位運算實現加法也就是計算機用二進位制進行運算,32位的cpu只能表示32位內的數,這裡先用1位數的加法來進行,在不考慮進製的基礎上,如下1 1 01 0 1 0 1 10 0 0 很明顯這幾個表示式可以用位運算的 來代替,如下1 1 01 0 1 0 1 10 0 0這樣我們就完成了簡單的一位數加...