Re: [閒聊] 每日leetcode

看板Marginalman作者 (早瀬ユウカの体操服 )時間1年前 (2024/04/19 09:08), 編輯推噓1(101)
留言2則, 2人參與, 1年前最新討論串133/1548 (看更多)
https://leetcode.com/problems/number-of-islands/description 200. Number of Islands 給你一個二維陣列 1 表示陸地 0 表示海水,相連的陸地是一的島嶼,求出有幾個島。 思路: 1.找到 grid[i][j] == 1 的格子就把島嶼數量+1,並以該點為中心 dfs 附近相鄰的陸地 標記為已經走過。 2.返回島嶼數量。 py code: ------------------------------------------------ class Solution: def numIslands(self, grid: List[List[str]]) -> int: res = 0 m, n = len(grid), len(grid[0]) for i in range(m): for j in range(n): if grid[i][j] == '1': self.dfs(grid, i, j) res += 1 return res def dfs(self, grid: List[List[str]], y: int, x: int): m, n = len(grid), len(grid[0]) if y < 0 or y == m or x < 0 or x == n or grid[y][x] != '1': return grid[y][x] = '-1' self.dfs(grid, y + 1, x) self.dfs(grid, y - 1, x) self.dfs(grid, y, x + 1) self.dfs(grid, y, x - 1) ------------------------------------------------ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.138.137.43 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1713488884.A.C33.html

04/19 09:19, 1年前 , 1F
大師
04/19 09:19, 1F

04/19 09:47, 1年前 , 2F
八分鐘秒殺 猛
04/19 09:47, 2F
文章代碼(AID): #1c8SFqmp (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1c8SFqmp (Marginalman)