200. Number of Islands
解這題的想法是,對每一個未訪問過的 land,用 DFS 或 BFS 去訪問相鄰 lands。當相鄰 cell 為 land 時,再繼續訪問其相鄰 lands,一直無法再擴張為止。這樣就得到一個 island。然後,再找下一個未訪問過的 land 做上述相同的動作,一直到所有的 land 都被訪問過。
Union Find
Union Find data structure 又稱 disjoint set data structure。它是一個資料結構,用來儲存一堆 disjoint set。它提供兩個操作,一個是用來合併兩個 sets,另一個是用來尋找給定元素的 set。
Depth First Search (DFS)
深度優先搜尋(DFS)演算法是一種圖形搜尋演算法。從給定的一個點開始,它會先探索該點的一個相鄰點。再來,探索該相鄰點的一個相鄰點。這樣子一直探索下去,直到某的點沒有相鄰點時,它就會退回到上一個點,並探索該點的下一個相鄰點。它會一直這樣地探索下去,直到找到結果,或是探索完所有的點。
Breadth First Search (BFS)
廣度優先搜尋(BFS)演算法是一種圖形搜尋演算法。從給定的一個點開始,它會先探索該點所有的相鄰點。再來,依序探索這些相鄰點的相鄰點。這樣子一層一層地探索下去,直到找到結果,或是探索完所有的點。
Swift Concurrency 教學
Swift 5.5 推出了 Swift concurrency。它讓我們用 synchronous 的方式來完成 asynchronous code。大大地降低 asynchronous code 的複雜度。本文章將介紹 Swift concurrency 的基本知識。
Swift Combine 教學
Swift Combine 是 Apple 用來實現 reactive programming 的函式庫。在 Combine 還沒出來之前,我們一般是使用 RxSwift。不過,使用 Combine 的話,我們就不需要再引入額外的函式庫。而且與 RxSwift 相比,Combine 的效能更好。
建立一個 Android Collection App Widget
Android Collection Widgets 是用來在 home screen 上顯示多筆相同型態的資料,例如圖片集、郵件列表等。所以,一般來說 collection widgets 可以上下滑動來顯示更多的資料。