Add_Two_Numbers python 求解
leetcode 傳送門
例子:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
大體意思就是從前向後做加法,逢十進一。
在評論區找到的一個程式碼:
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
carry = 0 # 進位符
root = n = ListNode(0)
while l1 or l2 or carry:
# 只要 l1 l2 都不為空才進行操作,否則直接返回 0
v1 = v2 = 0
if l1:
v1 = l1.val
l1 = l1.next
if l2:
v2 = l2.val
l2 = l2.next
carry, val = divmod(v1+v2+carry, 10)
n.next = ListNode(val)
n = n.next
return root.next # 這步一定要仔細理解
divmod() 函式返回的是商和餘數構成的元組。
例如 a, b = divmod(6, 3) 就是 6除以3, a = 2, b = 0
這道題涉及到連結串列的知識,我想用 C 解答起來會稍微容易理解一點。對於 python,主要的是理解連結串列的構造。
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None
使用這個類來構造一個連結串列
idx = ListNode(3)
n = idx
n.next = ListNode(4)
n = n.next
n.next = ListNode(5)
n = n.next
print(idx.val,idx.next.val,idx.next.next.val)
其實感覺 python 做這種資料結構對於理解連結串列來說還是有幫助的,但是相較於 C 程式碼, python 的程式碼還是難以理解的。
相關文章
- python+gurobi求解排班問題Python
- 改進版的python求解數獨Python
- Python求解線性規劃——PuLP使用教程PythonPulp
- Cplex混合整數規劃求解(Python API)PythonAPI
- 僅50行Python程式碼!數獨求解!4秒!Python
- 遺傳演算法求解TSP問題(python版)演算法Python
- Python求解錯,不知道哪裡有問題。。。Python
- 求解c++C++
- Glide error 求解IDEError
- 分散式方案求解.分散式
- AJAX 跨域請求解跨域
- 程式設計題求解程式設計
- 【閒話 No.1】 求解??
- 粒子群演算法求解物流配送路線問題(python)演算法Python
- 同樣演算法的Python和C求解數獨程式速度比較演算法Python
- 03 迴歸演算法 - 線性迴歸求解 θ(最小二乘求解)演算法
- Excel中的規劃求解。Excel
- 測試面試困惑求解答面試
- matlab求解方程組Matlab
- 淺談倍增法求解LCA
- 求解惑,也是java迷茫者Java
- 演算法問題基於蟻群演算法求解求解TSP問題(JAVA)演算法Java
- matplotlib 安裝失敗,求解!
- c++求解獎券題目C++
- 測試面試題目求解答面試題
- 梯度下降求解最小二乘梯度
- 模型中業務方法尋求解惑模型
- 求解決方案!!請高手指點
- IP地址網段求解題(轉)
- 樹遞迴問題的求解遞迴
- 求解一個陣列的所有子集陣列
- 梯度下降法中導數的求解梯度
- c++求解李白喝酒問題C++
- 幾何約束求解思維框架框架
- itpub 論壇賬號被禁了,求解
- 一道hibernate面試題,求解?面試題
- 求解spring aop cglib問題SpringCGLib
- 尋求解決之道.歡迎探討!!!