877. Stone Game

石頭遊戲,兩個人輪流選石頭,Alex 先選,每次只能選開頭或結尾,最終獲得石頭總數多的人獲勝。 乍看之下不好想到可以用 DP 解,但其實可用一個 2D-state 去描述遞迴的狀態。 這題一開始會好奇是因為負評倒讚很多,個人是感覺能從 Game Theory 單純想出這結論也是蠻厲害的…

Continue reading

Terraform 實用技巧

最近很常寫 Terraform ,知道一些 terraform cli 指令可以幫助自己寫的更好,也在學習 Terraform 的過程中,把覺得值得記錄的一些注意事項 & 小技巧留在這裡。

Continue reading

這題是求最長相同的子序列,可用 Dynamic Programing 來做,最難的還是想出狀態函數。這裡使用 2D-dp ,其中 dp[i][j] 表示 :

  • text1 的前 i 個字符
  • text2 的前 j 個字符

的最長相同的子序列的字符個數

Continue reading

Java 賦值語句,是有返回值的,而且還並不是想像中的 bool 類型 ! 想想其實一直都有看到一些類似的用法,但因自己平時開發並沒有特別使用過,也沒有很深入去探討了解。今天在這邊就舉例一些出來,來說明 Java 賦值語句的返回值。

Continue reading

CIDR 介紹

無類別域間路由( Classless Inter-Domain Routing ,簡稱 CIDR )是為了避免造成 IP 位址的大量浪費,於是出現的一種技術。CIDR重點有:

  1. 多變長度子網路遮罩 (Variable-Length Subnet Mask,VLSM)
  2. 路由匯總 (Route Summarization)(暫不介紹)

Continue reading

63. Unique Paths II

這題是 62. Unique Paths 的延伸,能選擇往下或往右走直至終點為止,要求出有多少種可能走法,但多了一個限制,會在路徑中加了一些 obstacle 擋住了某些路徑。是一道典型的 Dynamic Programming - 2D matrix 類型的題目。和爬樓梯等都屬於動態規劃中常見題目,因此也經常會被用於面試之中。

Continue reading

139. Word Break

一道很經典的題目,是給定一 string ,能不能分被拆分成 wordDict 裡面的單詞。注意這題,wordDict 裡面的單詞可以重複使用,即單詞使用沒有次數限制,所以 string 可以分成任意段,這就增加了題目的難度。解法蠻多種的,可先從 brute force 下手,再加上暫存優化後,就是蠻標準的 dp 解了,來解一下吧。

Continue reading

IP (Internet Protocol) 是電腦的地址。IP 位址在系統中是一個 32 位元的數字,但為了方便人類讀寫,每一個位元組會被轉換成一個十進位的數字。

IP 位址可以分為 Network ID 和 Host ID,為了讓電腦可以判斷出 IP 位址的 Network ID 及 Host ID,必須靠子網路遮罩 (Subnet Mask) 的幫忙。

Continue reading

Dynamic Programming 大概算是 leetcode 裡面平均難度最高的章節了,還蠻需要練習的。但在講 DP 之前,我們可以先講 Search,因為 Dynamic Programming 其實就是 Search + Memoization。

Continue reading

Datadog V.S Grafana

Datadog 是 2010 年成立,以 infrastructure monitoring 起家。主要是整合多個雲平台如 GCP, AWS, Azure,讓工程師方便監測以進行 debug 。另外可用機器學習方式,將預先對可能發生異常狀況發出警示,是企業級的解決方案。

Continue reading

Author's picture

李昀陽 YunYang Lee

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

Software Engineer

Taiwan