week02學習總結

2021-10-07 07:06:24 字數 1640 閱讀 3098

問題

雜湊函式的特點:

map: key-value對,key不重複

set:不重複元素的集合

鍊錶linked list是特殊化的tree,tree是特殊化的圖graph。

示例**:

python

class treenode:

def __init__(self, val):

self.val = val

self.left, self.right = none, none

def preorder(self, root):

if root:

self.preorder(root.left)

self.preorder(root.right)

def inorder(self, root):

if root:

self.inorder(root.left)

self.inorder(root.right)

def postorder(self, root):

if root:

self.postorder(root.left)

self.postorder(root.right)

中序遍歷:公升序遍歷

不同實現的比較

堆的實現**

二叉堆 binary heap

二叉堆(大頂)它滿足下列性質:

二叉堆實現細節:

insert 插入操作 o(logn)

delete max - 刪除操作o(logn)

注意:二叉堆是堆(優先佇列priority_queue)的一種常見且簡單的實現;但是並不是最優的實現。

度 - 入度和出度

點與點之間:連通與否

有向和無向(單行線)

權重(邊長)

基於圖相關的演算法

dfs** - 遞迴寫法

visited = set() # 和樹中的dfs最大區別

def dfs(node, visited):

if node in visited: # terminator

# already visited

return

visited.add(node)

# process current node here.

...for next_node in node.children():

if not next_node in visited:

dfs(next_node, visited)

def bfs(graph, start, end):

queue =

visited = set() # 和樹中的bfs的最大區別

while queue:

node = queue.pop()

visited.add(node)

process(node)

nodes = generate_related_nodes(node)

queue.push(nodes)

052 week 預習周 學習總結

目錄獲得正向的反饋,全神貫注的完成一件事情 堅持 不斷修正自己的學習方法,更加快速進步 既然選擇了這條路,跪著也要走下去,為了在演算法這條路上越走越遠,就必須付出超乎常人的努力,只有這樣,才能在這個領域站住腳。堅持走下去!課程結束回顧學習過程,會感激今天付出的所有努力!關於我 custer 關於工作...

shell指令碼學習總結02 陣列

bash同時支援普通陣列個關聯陣列,普通陣列只能使用整數作為陣列的索引,關聯陣列可以使用字串作為陣列的索引。陣列的定義方法 在單行中使用一列值定義乙個陣列 root new array1 123 456 使用索引 值定義 root new array2 0 test1 root new array2...

Vue學習筆記day02總結

目錄 1.品牌新增 刪除 查詢案例 2.過濾器 2.1全域性過濾器 2.2私有過濾器 3.字串的padstart方法的使用 指定顯示長度 4.自定義全域性按鍵修飾符 5.自定義指令 5.1自定義全域性指令 5.1.1 自定義全域性指令讓文字框獲取焦點 5.1.2 自定義全域性指令設定字型顏色 使用鉤...