文巾解题 695. 岛屿的最大面积
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 695. 岛屿的最大面积
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 題目描述
2 解題思路
2.1 廣搜
廣搜使用隊(duì)列實(shí)現(xiàn)
class Solution:def maxAreaOfIsland(self, grid: List[List[int]]) -> int:row=len(grid)column=len(grid[0])num=0for i in range(row):for j in range(column):if(grid[i][j]==1):tmp=1grid[i][j]=0lst=[(i,j)]while(lst):(x,y)=lst.pop(0)for (i,j) in [(x-1,y),(x+1,y),(x,y+1),(x,y-1)]:if(i>=0 and i <row and j>=0 and j<column):if(grid[i][j]==1):tmp+=1grid[i][j]=0lst.append((i,j))num=max(num,tmp)return(num)2.2 深搜
深搜使用遞歸實(shí)現(xiàn)
這里定義了一個(gè)nonlocal變量tmp,變是當(dāng)前區(qū)域島嶼的面積
如果我們發(fā)現(xiàn)了一塊陸地,那么我們就把這塊陸地代表的島嶼的所有陸地全部找到,計(jì)算這個(gè)島嶼的面積,然后看和當(dāng)前最大的島嶼面積誰(shuí)大
class Solution:def maxAreaOfIsland(self, grid: List[List[int]]) -> int:row=len(grid)column=len(grid[0])num=0tmp=1def dfs(x,y): nonlocal tmpfor (i,j) in [(x-1,y),(x+1,y),(x,y+1),(x,y-1)]:if(i>=0 and i <row and j>=0 and j<column):if(grid[i][j]==1):tmp+=1grid[i][j]=0dfs(i,j)for i in range(row):for j in range(column):if(grid[i][j]==1):grid[i][j]=0tmp=1dfs(i,j)num=max(num,tmp)return(num)?
總結(jié)
以上是生活随笔為你收集整理的文巾解题 695. 岛屿的最大面积的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文巾解题 733. 图像渲染
- 下一篇: 文巾解题 617. 合并二叉树