ARTS Week 22
ARTS Week 22
如果不自己主動去接觸的話,是什麼也無法創造的。 --優紀《刀劍神域》
Algoithm
概述
從左向右遍歷一個數組,通過不斷將其中的元素插入樹中可以逐步地生成一棵二叉搜尋樹。給定一個由不同節點組成的二叉搜尋樹,輸出所有可能生成此樹的陣列。
示例: 給定如下二叉樹
2
/ \
1 3
返回:
[
[2,1,3],
[2,3,1]
]
分析
- 使用一個queue儲存下個所有可能的節點
- 然後選擇其中一個作為path的下一個元素
- 遞迴直到queue元素為空
- 將對應的path加入結果中
- 由於二叉搜尋樹沒有重複元素, 而且每次遞迴的使用元素的順序都不一樣, 所以自動做到了去重
code
# Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def __init__(self):
self.res = []
def BSTSequences(self, root: TreeNode) -> list[list[int]]:
if not root:
return [[]]
self.dfs(root, [], [root.val])
return self.res
def dfs(self, root, q, path):
# todo 這裡可以類比多少種 BFS樹等
if not root:
return
if root.left:
q.append(root.left)
if root.right:
q.append(root.right)
if not q:
self.res.append(path)
for i, nex in enumerate(q):
new_path = q[:i] + q[i + 1:]
self.dfs(nex, new_path, path + [nex.val])
Review
概述
What’s a Neural Network?
Most introductory texts to Neural Networks brings up brain analogies when describing them. Without delving into brain
analogies, I find it easier to simply describe Neural Networks as a mathematical function that maps a given input to a
desired output.
Neural Networks consist of the following components
- An input layer, x
- An arbitrary amount of hidden layers
- An output layer, ŷ
- A set of weights and biases between each layer, W and b
- A choice of activation function for each hidden layer, σ. In this tutorial, we’ll use a Sigmoid activation function.
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-UCuPo1or-1609159099287)(https://miro.medium.com/max/500/1*sX6T0Y4aa3ARh7IBS_sdqw.png)]
Training the Neural Network
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-kwyJCWLc-1609159099291)(https://miro.medium.com/max/355/1*E1_l8PGamc2xTNS87XGNcA.png)]
Tip
概述
- 開源是一種非常優秀的方式,如果可以希望能夠參加一些開源專案,不僅能夠提升自我技術,同時也能夠在管理專案方面有更加高的提升。
- 外部服務的順序:雲服務>開源>傳統外包
- 版本迭代方面:不同的時間段,還是需要進行不同的方向的優化。比如 golang 不同版本的迭代。
Share
概述
現在的技術更新速度愈發加快,同時因為疫情,現在的大環境降低,導致內卷愈演愈烈,同時寡頭效應初現,所以還是需要讓自己有足夠的積累,以及在某一方面
有非常深刻的理解。否則,隨著工作年限的提升,很難趕上現在對工作年限要求的能力的提升速度。
那麼應該如何應對:
-
堅持刷演算法題目:
- 二叉樹,二叉樹,二叉樹 一定要先將二叉樹簡單/中等 儘可能的全部刷完
- 型別題目,能夠將部分中等題目刷一定比例。
- 輸出方法論
-
專注某一個技術:
- 不論技術如何變化,但是底層的技術都是 IO模型的選擇和優化,所以需要對某一箇中間件/資料庫 能夠有非常全面的深入的理解。
- 設計模式的應用,每一個底層邏輯都會使用不同的設計模型,不僅僅要知道,同時也需要進行思考:
- 為什麼選擇這種模式?
- 是否可以選擇其他的模式?
- 如果讓你設計,你會如何設計?
-
提升自我能力:
- 提升協調資源的能力,能夠將事情做好很難,所以如果將一件事情能夠做好,才是最基礎的。
- 提升系統能力