Terragrunt - Introduce

Terragrunt 是 gruntwork 推出的一個 Terraform thin wrapper,在執行 Terraform 前可以先調整 root module 內的 .tf 檔案,保持程式碼的精簡,並提供許多額外的工具和框架幫助開發,藉此可以讓你的 IaC code 更貼近 DRY 原則。

Continue reading

這題使用深度優先 Depth First Traversal 來遍歷,並使用 Pre-Order 方式記錄樹的節點值;Deserialize 時有用到 queue 來儲存節點 value 值。 之前文章也分享過,在想要 Copy Tree 時適合使用Pre-Order。這題有點符合 Copy Tree 的情境,但是是把 value 存下來。

Continue reading

近期有機會來比較一下 AWS 和 GCP 的一些差別,也看了一些文章(練英文QQ)。 GCP 和 AWS 都有 auto scaling 的功能,當我們在某些時候,需要比較多的資源處理事情時,可以自動增加機器來維持高 reliability。 那這部分 GCP 和 AWS 有甚麼區別呢 ?

Continue reading

Terratag

Terratag 是個 CLI 工具,可簡化 resource tag 的方式,允許將標籤應用於整個 Terraform 或 Terragrunt,對於 Terraform 社群來說,他們希望集中化來標註 resource 而不是分別寫在每個resource內,以更方便的追蹤和管理…

Continue reading

743. Network Delay Time

可以抽象成,計算從初始節點最遠節點的最優路徑,很標準的 best first search。 題目常用在水管滲透,或是網路流通,求出初始節點到每一個點到最短時間,然後取其中最大的一個就是需要的時間了。這題就是要你=實作 Dijkstra’s algorithm。

Continue reading

Array 是 Java 中的基本功能,而 ArrayList 是 Collection 的一部分; ArrayList 和 LinkedList 都是 Java 中的集合類型,它們都實現了 List 接口。基本特徵簡單如下 :

  • Array 是一個有固定大小的,每次創建都需要設定,而且在創建後,是不能再更改大小
  • ArrayList ,是一個有浮動大小的 Array,且適用於需要快速訪問集合中的元素的場景。
  • LinkedList 適用於頻繁插入和刪除元素的場景。

如果需要實現隊列或棧等數據結構,也可以選擇 LinkedList。

Continue reading

使用 HashMap 的方法 :

computeIfAbsent(K key, Function remappingFunction)

其中 remappingFunction 是一個 Functional interface

  • input 為 map 的 key
  • output 會成為 map 的 value

HashMap 的 computeIfAbsent 方法,在 key 不存在時,會做 remappingFunction 的操作,所以再也不會因為漏寫 if x == null 而出現空指針的 bug 了。

Continue reading

這種飛航問題基本上都是屬於 Graph 題,題目敘述也很生活化(根本旅行必備知識)。 因為所有的路徑有且只會被用一次,故是一個 Euler Circuit

進一步抽象,可說這題是屬於 Post-order traversal on Edges 問題。 從入口做 post-order ,會是出口先被紀錄,然後再往回 backtracking 回入口,把路上的所有 node 都記下來。 老實說技巧性有點太強,且還是高頻…。 另外注意英文閱讀,有些單字很重要例如 lexical order,沒注意到可能會出現錯誤。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan