摘要:返回注意答案并不是因為陸地相連要求必須是在上下左右四個方向。返回應(yīng)為想法我們還是要遍歷數(shù)組中的每一個元素。如果數(shù)組元素值為,則我們以這個值為起點進(jìn)行深度優(yōu)先搜索。
題目詳情
Given a non-empty 2D array grid of 0"s and 1"s, an island is a group of 1"s (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water.想法
Find the maximum area of an island in the given 2D array. (If there is no island, the maximum area is 0.)輸入一個非空的二維數(shù)組,數(shù)組由0和1組成。其中0代表水域,1表示陸地。我們需要找出整個數(shù)組所表示的地圖中,面積最大的一塊陸地(陸地的相連只看上下左右相鄰的4個元素,如左上方這種就不算相鄰!)。
Example 1:
[[0,0,1,0,0,0,0,1,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,1,0,0,0],
[0,1,1,0,1,0,0,0,0,0,0,0,0],
[0,1,0,0,1,1,0,0,1,0,1,0,0],
[0,1,0,0,1,1,0,0,1,1,1,0,0],
[0,0,0,0,0,0,0,0,0,0,1,0,0],
[0,0,0,0,0,0,0,1,1,1,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0]]
返回6. 注意答案并不是11, 因為陸地相連要求必須是在上下左右四個方向。
Example 2:
[[0,0,0,0,0,0,0,0]]
返回應(yīng)為0.
我們還是要遍歷數(shù)組中的每一個元素。
如果數(shù)組元素值為1,則我們以這個值為起點進(jìn)行深度優(yōu)先搜索。
遍歷當(dāng)前元素的相鄰元素,如果有相鄰元素的值為1,那么再以這個元素為起點繼續(xù)搜索。
為了防止重復(fù),我們每發(fā)現(xiàn)一個值為1的元素,就將這個元素賦值為0,代表我們已經(jīng)遍歷過這個元素了。
解法int[][] directions = {{-1,0},{1,0},{0,-1},{0,1}}; public int maxAreaOfIsland(int[][] grid) { int rows = grid.length; int cols = grid[0].length; int maxArea = 0; int currArea = 0; for(int row=0;row=0 && newX < grid.length && newY >=0 && newY < grid[0].length){ if(grid[newX][newY] == 1){ grid[newX][newY] = 0; area += findArea(grid,newX,newY); } } } return area; }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/68451.html
Problem Given a non-empty 2D array grid of 0s and 1s, an island is a group of 1s (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are s...
摘要:前言從開始寫相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時也沒有按順序?qū)懍F(xiàn)在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個索引嘻嘻。順序整理更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新 前言 從開始寫leetcode相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時也沒有按順序?qū)憽F(xiàn)在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個索引嘻嘻。 順序整理 1~50 1...
摘要:找到給定的二維數(shù)組中最大的島嶼面積。思路給定一個由和組成的二維數(shù)組,其中代表島嶼土地,要求找出二維數(shù)組中最大的島嶼面積,沒有則返回。樣例如樣例所示,二維數(shù)組的最大島嶼面積為,下面來講解深度優(yōu)先搜索的做法。 ...
Problem You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water. Grid cells are connected horizontally/vertically (not diagonally). The grid is com...
摘要:要求計算出島嶼的周長。思路和代碼這題不難,直觀的來看,其實只要判斷出這一塊土地幾面臨海就知道需要加上幾條邊長。臨海的判斷有兩個,一個是這塊地位于數(shù)組的邊緣,一個是這塊地相鄰的元素為,即海洋。代碼如下上方臨海左側(cè)臨海右側(cè)臨海下方臨海 題目要求 You are given a map in form of a two-dimensional integer grid where 1 rep...
閱讀 2909·2021-11-17 09:33
閱讀 1630·2021-10-12 10:13
閱讀 2425·2021-09-22 15:48
閱讀 2313·2019-08-29 17:19
閱讀 2587·2019-08-26 11:50
閱讀 1565·2019-08-26 10:37
閱讀 1732·2019-08-23 16:54
閱讀 2917·2019-08-23 14:14