反轉 Linked List 是一道經典的題目,可以用分別用 :
- 指針 (iterative)
- 遞迴 (recursive)
兩種截然不同的風格來解答。個人認為是蠻好的題目,可以多寫幾次,並從各種不同的解答方式來說明思考,故在此筆記。要說簡單也不算,對於 recursive 解法一開始我覺得有點難理解 ! 雖然被歸類在 Easy,但我私心覺得蠻容易打擊第一次做的人的…

反轉 Linked List 是一道經典的題目,可以用分別用 :
- 指針 (iterative)
- 遞迴 (recursive)
兩種截然不同的風格來解答。個人認為是蠻好的題目,可以多寫幾次,並從各種不同的解答方式來說明思考,故在此筆記。要說簡單也不算,對於 recursive 解法一開始我覺得有點難理解 ! 雖然被歸類在 Easy,但我私心覺得蠻容易打擊第一次做的人的…
Multiple points 的操作,經常用在 array 或 linkedList 上,有幾點事情可以在刷題時特別注意:
指標會把 list 切成幾個部分,特別注意每一部份的定義
list 是否有排序或可以排序
指標移動是使用快慢指標還是左右指標
會不會改變原本的 list
其中第一點,把 array 切成幾個部分,每個部份的定義,是最重要的思想,可以多思考。
要讓 Terraform 能有複用性,我們需要加入一些參數化變數來增加彈性,也就是為 module 的 parameter,而且在 root module 中定義好的 variable,可以根據需求來覆蓋。 Terraform Input Variables 的功能,讓我們可以宣告變數,並有幾種方式可以傳入自訂義 variable values:
- command line
.tfvars
- Environment 讀取
以下會簡單介紹這些方式和優缺點。
所謂的兩字串互為 Anagrams ,意思就是兩個字串中,字母出現的次數都一樣,只是位置不同,比如題目說的 ate 、 eat 、 tea 它們就都互為 Anagrams 。如何判斷兩字串是否互為 Anagrams 是關鍵解題點,這題雖然歸為 Medium ,但是偏向 easy 的,需要注意的點是:
- 熟悉一些 java 內建常用的字串處理 function ,寫起來會比較簡潔。
- 想到使用 map 結構來儲存分組資料。
現今應用程式發展迅速, app 的更新也變得越來越頻繁,在微服務、DevOps、Cloud-native 的迭代過程中,最終都需要上線。上線就需要部署;需要部署就意味著有修改;修改則意味著有風險,要如何在盡量不影響 user 的前提下,讓 app 升版呢 ? 這時就有一些部屬策略可以考慮。對於 Deployment Strategies 有一些基本的專有名詞和觀念,例如 :
- Recreate
- Rolling
- Blue-Green
- Canary
對於應該使用哪種 Deployment Strategy 、它們的工作原理、優缺點等等,以下會做些基本介紹。
當我們在編寫 Kubernetes Pod 相關的 yaml spec 時,有時會針對 spec.containers ,設置啟動時要執行的命令及其參數,而 Kubernetes 提供
command
和args
,兩種方式可以選擇。但這時候就會出現一些疑問 :
- 這兩個差異是甚麼 ?
- Docker Image 中如果自帶 ENTRYPOINT 和 CMD ,若 Kubernetes 再設置
command
和args
會發生甚麼事情呢 ?以下就來簡單說明一下。