DevLogue by Emma

Code, Curiosity, and a Quiet Voice

🏷️ 題目基本資訊

  • 題目名稱: Word Search
  • 題號編號: 79
  • 難度:Medium
  • 題目分類: Backtrack
  • 連結:LeetCode 題目連結

🧠 題目目標

給定一個 m x n 的字母矩陣 board 和一個字串 word,判斷 word 是否存在於矩陣中。

  • 單字可以從任一格開始搜尋
  • 每步只能向上下左右移動到相鄰的格子
  • 每個格子只能用一次
Read more »

TCP(Transmission Control Protocol,傳輸控制協定)

TCP 是一種可靠的資料傳輸協定,負責確保資料在傳送過程中不遺漏、不重複,並且按照正確的順序送達對方。這也是為什麼我們說 TCP 是「有連線」、「可靠」的通訊協定。

三次握手(Three-way Handshake)

在 TCP 傳輸開始之前,會先經過「三次握手」來建立連線,確保雙方都準備好開始資料傳輸。整個過程就像雙方互相確認:「我準備好了,你也準備好了,那我們開始吧!」

三次握手的過程簡化如下:

  • Client:嗨,我要傳資料囉!(SYN)
  • Server:我準備好了,你準備好了嗎?(SYN-ACK)
  • Client:我真的準備好了!(ACK)

連線建立後,資料才會開始傳輸。

適用場景:

  • 瀏覽網頁
  • 檔案下載
  • 資料庫連線

只要是需要資料正確、不能遺失的應用場景,通常都會使用 TCP。

Read more »

題目基本資訊

  • 題目名稱: Number of Islands
  • 題號編號: 200
  • 難度:Medium
  • 題目分類: Graph
  • 連結:LeetCode 題目連結

題目描述

給你一個由 0(水)和 1(陸地)組成的 2D 地圖,請你找出這張地圖中總共有幾個「島嶼」。

  • 島嶼的定義是:水平或垂直相連的陸地
  • 對角線不算相連
  • 四周預設都是水
  • 你要回傳島嶼的數量(也就是「有幾塊互相連接的陸地」)

範例輸入:

1
2
3
4
5
6
7
[
["1","1","0","0","0"],
["1","1","0","0","0"],
["0","0","1","0","0"],
["0","0","0","1","1"]
]
輸出結果:3

概念邏輯

為什麼這題適合用 DFS?
可以把整張地圖想像成一個「圖」,每個格子是一個節點,四個方向是它的鄰居。

當發現一個 1(陸地),就用 DFS 從這個點出發,把整個連在一起的陸地都「走一遍」。

每當從一個新的 1 開始走 DFS,表示發現一座新的島嶼。

Read more »