菜鳥扣程式碼第九天:leetcode463--島嶼的周長
題目描述:
給定一個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。
網格中的格子水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有一個島嶼(或者說,一個或多個表示陸地的格子相連組成的島嶼)。
島嶼中沒有“湖”(“湖” 指水域在島嶼內部且不和島嶼周圍的水相連)。格子是邊長為 1 的正方形。網格為長方形,且寬度和高度均不超過 100 。計算這個島嶼的周長。
輸入:
[[0,1,0,0],
[1,1,1,0],
[0,1,0,0],
[1,1,0,0]]
輸出: 16
解釋: 它的周長是下面圖片中的 16 個黃色的邊:
程式碼:
class Solution:
def islandPerimeter(self, grid: List[List[int]]) -> int:
if not grid:
return 0
result = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] == 1:
result += 4
if i > 0 and grid[i-1][j] == 1:
result -= 2
if j > 0 and grid[i][j-1] == 1:
result -= 2
return result
測試用例:
輸入
[[0,1,0,0],[1,1,1,0],[0,1,0,0],[1,1,0,0]]
輸出
16
預期結果
16
相關文章
- Leedcode-島嶼的周長
- LeetCode 463. 島嶼的周長 JAVALeetCodeJava
- 程式碼隨想錄day52 || 圖論搜尋 島嶼數量,島嶼的最大面積圖論
- 最大島嶼面積
- 菜鳥成長系列-策略模式模式
- 程式碼隨想錄演算法訓練營day51| 卡碼網99.島嶼數量 卡碼網100.島嶼的最大面積演算法
- 【力扣】島嶼數量(體會一下dfs和bfs思路的實質)力扣
- Facebook 面試題 | 島的周長面試題
- 菜鳥成長系列-模板方法模式模式
- [LintCode]NumberofIslands(島嶼個數)
- 200. 島嶼數量
- Linux“菜鳥”到“菜鳥的一些建議Linux
- 菜鳥扣程式碼第十五天:leetcode第1365題--有多少小於當前數字的數字LeetCode
- 菜鳥成長系列-觀察者模式模式
- 菜鳥求助!!!
- Linux菜鳥到老鳥的那些建議Linux
- 程式碼隨想錄演算法訓練營 | 200.島嶼的數量(dfs/bfs)演算法
- PJzhang:鳥哥的linux私房菜-shell指令碼-上Linux指令碼
- 菜鳥市場
- 程式設計師菜鳥面試攻略程式設計師面試
- 【菜鳥讀原始碼】halo✍原始碼學習 (一)原始碼
- 給程式設計師“菜鳥”的6條建議程式設計師
- 菜鳥理解的區塊鏈區塊鏈
- 菜鳥的架構師之路架構
- 菜鳥的Hadoop快速入門Hadoop
- java從菜鳥到碼神之路——運算子Java
- 寫一個菜鳥裹裹小程式吧
- hashmap == 菜鳥驛站?HashMap
- 菜鳥看前端(Git)前端Git
- java菜鳥入門Java
- 菜鳥程式設計師都是怎樣寫程式碼的?你也可以學一手程式設計師
- 【前端開發】菜鳥必看,大佬繞道~使用控制檯寫js程式碼前端JS
- Java程式設計師從笨鳥到菜鳥全部部落格目錄Java程式設計師
- 菜鳥學網路之 —— 長連線和短連線
- 我用演算法學golang(島嶼的最大面積)演算法Golang
- ESlint-菜鳥入門EsLint
- 菜鳥初嘗快速冪
- 跟著菜鳥學pythonPython