問題
雜湊函式的特點:
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 自定義全域性指令設定字型顏色 使用鉤...