演算法打卡Week2

2021-10-25 19:54:44 字數 2491 閱讀 7952

例1

輸入:l1 =[2

,4,3

], l2 =[5

,6,4

]輸出:[7,

0,8]

解釋:342

+465

=807

.

例2

輸入:l1 =[0

], l2 =[0

]輸出:[

0]

學習鍊錶結構:

鍊錶是一種遞迴的資料結構,由乙個個結點(node)組成,且每個節點都有資料域(value)和指標域(next)。

head—為單鏈表的頭指標,永遠指向第乙個節點

tail—永遠指向最後乙個節點

none—表示最後乙個節點的指標域為none值

思路:1.同時遍歷兩個鍊錶;

2.遍歷的同時也將每個節點的和建立到新的鍊錶中

# definition for singly-linked list.

# class listnode(object):

# def __init__(self, val=0, next=none):

# self.val = val

# self.next = next

class

solution

(object):

defaddtwonumbers

(self, l1, l2)

: head = listnode(

)# 頭指標

cur = head

carry =

0while l1 or l2:

value_l1 = l1.val if l1 else

0 value_l2 = l2.val if l2 else

0 total = value_l1 + value_l2 + carry # 求和

carry = total //

10# 判斷是否有進製

cur.

next

= listnode(total %

10)

cur = cur.

next

# 建立節點

if l1 :

l1 = l1.

next

if l2 :

l2 = l2.

next

if carry >0:

cur.

next

= listnode(carry)

# 判斷最後一位是否有進製

return head.

next

輸入:1-

>2-

>3-

>4-

>5-

>null

輸出:5

->4-

>3-

>2-

>1-

>null

思路:

1.先建立兩個指標pre(指向前節點),cur(指向當前節點),初始值為pre = none,cur = head;

2.將當前節點 cur 的後一節點 next 儲存在tra;

3.然後將當前節點指向前節點pre;

4.接著把指標pre向後挪一位,即當前節點cur;

5.最後也將指標cur向後挪一位,即 cur = tra;

6.直到 cur 指向了none結束迴圈。

# definition for singly-linked list.

# class listnode(object):

# def __init__(self, val=0, next=none):

# self.val = val

# self.next = next

class

solution

(object):

defreverselist

(self, head)

:"""

:type head: listnode

:rtype: listnode

"""pre =

none

# 前節點

cur = head # 現節點

while cur:

tra = cur.

next

# 保留後節點

cur.

next

= pre # 當前節點指向前一節點

pre = cur # 前節點往後挪一位

cur = tra # 當前節點往後挪一位

return pre

暑期LeetCode打卡 Week2,遞迴

題號 題目鏈結 set資料結構 特點 所有元素都會根據元素的鍵值自動排序,不允許兩個元素有相同的鍵值,可用於去重。begin 返回指向第乙個元素的迭代器 end 返回指向最後乙個元素的迭代器 empty 判空 clear 清空 size 集合中元素數目 insert 插入元素 erase 刪除元素 ...

A 化學(Week2 模擬)

題目敘述 化學很神奇,以下是烷烴基。假設如上圖,這個烷烴基有6個原子和5個化學鍵,6個原子分別標號1 6,然後用一對數字 a,b 表示原子a和原子b間有乙個化學鍵。這樣通過5行a,b可以描述乙個烷烴基 你的任務是甄別烷烴基的類別。原子沒有編號方法,比如 1 22 3 3 44 5 5 6和 1 32...

程式設計 Week2 作業

題意 東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路線。input 輸入是乙個5 5的二維陣列,僅由0 1兩數字組成,表示法陣地圖。ou...