iT邦幫忙

2025 iThome 鐵人賽

0
自我挑戰組

Java × LeetCode-30天日記系列 第 29

Day 29:Number of Islands (LC #200)

  • 分享至 

  • xImage
  •  

題目理解
我的理解 : 給定一個由 '1'(陸地)和 '0'(水域)組成的二維網格,需要計算島嶼的數量。一個島嶼是由「相鄰的陸地格子(上下左右)」組成的區塊。
方法

  • 逐格掃描整個網格,當遇到 '1'(陸地)時,就代表發現了一個新的島嶼。
  • 然後使用 DFS(遞迴搜尋)把整個島嶼「淹沒」掉(即標記為 '0')。
    https://ithelp.ithome.com.tw/upload/images/20251013/20169238epcjuMWPEn.png

心得
這題讓我學到如何用 DFS 遞迴 來處理「區域塊搜尋」的問題。一開始看起來像是要用多重迴圈找陸地,但實際上透過 DFS,只要從一個 '1' 出發,就能一次找出整個島嶼的範圍。


上一篇
Day 28:Validate Binary Search Tree (LC #98)
下一篇
Day 30:Word Ladder (LC #127)
系列文
Java × LeetCode-30天日記30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言