摘要:整個網格被水完全包圍,但其中恰好有一個島嶼或者說,一個或多個表示陸地的格子相連組成的島嶼。島嶼中沒有湖湖指水域在島嶼內部且不和島嶼周圍的水相連。格子是邊長為的正方形。網格為長方形,且寬度和高度均不超過。
題目地址:
https://leetcode-cn.com/probl...
題目描述:
給定一個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。
網格中的格子水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有一個島嶼(或者說,一個或多個表示陸地的格子相連組成的島嶼)。
島嶼中沒有“湖”(“湖” 指水域在島嶼內部且不和島嶼周圍的水相連)。格子是邊長為 1 的正方形。網格為長方形,且寬度和高度均不超過 100 。計算這個島嶼的周長。
示例 :
輸入:
[[0,1,0,0],
[1,1,1,0],
[0,1,0,0],
[1,1,0,0]]
輸出: 16
解答:
找到島嶼,然后把結果加4,接著判斷這個島嶼的上下左右是否為島嶼,若為島嶼,則每個方向減一。
java ac代碼:
class Solution { public int islandPerimeter(int[][] grid) { if(grid.length == 0)return 0; int ans = 0; for(int i = 0;i < grid.length;i++) for(int j = 0;j < grid[0].length;j++) if(isLand(i,j,grid)) { ans += 4; if(isLand(i-1,j,grid))ans--; if(isLand(i,j-1,grid))ans--; if(isLand(i+1,j,grid))ans--; if(isLand(i,j+1,grid))ans--; } return ans; } boolean isLand(int x,int y,int[][]grid) { if(!(x >= 0 && x< grid.length && y >= 0&& y < grid[0].length)) return false; return grid[x][y] == 1; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73373.html
摘要:題目鏈接題目分析給定一個二維數組,代表一個二維表格。代表有內容,代表沒有。思路最簡單的辦法是,判斷當前格子是否位,且上下左右是否為。當都為時,即當前位置是單獨的一個格子,算上下左右共條邊。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 463. Island Perimeter 題目鏈接 463. Island Perimeter 題目分析 給定一個二維數組,代表一個二維表格。 里...
摘要:要求計算出島嶼的周長。思路和代碼這題不難,直觀的來看,其實只要判斷出這一塊土地幾面臨海就知道需要加上幾條邊長。臨海的判斷有兩個,一個是這塊地位于數組的邊緣,一個是這塊地相鄰的元素為,即海洋。代碼如下上方臨海左側臨海右側臨海下方臨海 題目要求 You are given a map in form of a two-dimensional integer grid where 1 rep...
摘要:圖因此可以成為樹,在所有可能的樹中,具有最小高度的樹被稱為最小高度樹。給出這樣的一個圖,寫出一個函數找到所有的最小高度樹并返回他們的根節點。因此使用一個數組代表每個節點的入度,若入度為就是葉子節點。 題目地址:https://leetcode-cn.com/probl...題目描述: 對于一個具有樹特征的無向圖,我們可選擇任何一個節點作為根。圖因此可以成為樹,在所有可能的樹中,具有最小...
摘要:關于遞歸這里提一兩點遞歸基本有這幾步遞歸的模板,終止條件,遞歸調用,邏輯處理。 ?作者簡介:大家好,我是車神哥,府學路18號的車神? ?個人主頁:應無所住而生...
閱讀 1673·2021-11-15 11:38
閱讀 4514·2021-09-22 15:33
閱讀 2332·2021-08-30 09:46
閱讀 2176·2019-08-30 15:43
閱讀 827·2019-08-30 14:16
閱讀 2069·2019-08-30 13:09
閱讀 1255·2019-08-30 11:25
閱讀 701·2019-08-29 16:42