日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

岛屿类-网格类问题-DFS | 力扣695. 岛屿的最大面积

發(fā)布時(shí)間:2025/3/20 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 岛屿类-网格类问题-DFS | 力扣695. 岛屿的最大面积 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

思路參考上文:
島嶼類-網(wǎng)格類問題-DFS | 力扣200. 島嶼數(shù)量

  • 本文講解695. 島嶼的最大面積問題,屬于常見的島嶼類-網(wǎng)格類問題
  • 本題使用DFS的思想


題目

給定一個(gè)包含了一些 0 和 1 的非空二維數(shù)組 grid
一個(gè) 島嶼 是由一些相鄰的 1 (代表土地) 構(gòu)成的組合,這里的「相鄰」要求兩個(gè) 1 必須在水平或者豎直方向上相鄰。你可以假設(shè) grid 的四個(gè)邊緣都被 0(代表水)包圍著
找到給定的二維數(shù)組中最大的島嶼面積。(如果沒有島嶼,則返回面積為 0 )

示例

思路分析

思路參考上文:
島嶼類-網(wǎng)格類問題-DFS | 力扣200. 島嶼數(shù)量

代碼

class Solution { public:int maxAreaOfIsland(vector<vector<int>>& grid) {int res = 0;for (int r = 0; r < grid.size(); r++) {for (int c = 0; c < grid[0].size(); c++) {if (grid[r][c] == 1) {int a = inArea(grid, r, c);res = res > a ? res : a;}}}return res;}int inArea(vector<vector<int>>& grid,int line,int row) {if (!Island(grid,line,row)) {return 0;}if (grid[line][row] != 1) {return 0;}grid[line][row] = 2; // 代表訪問過return 1 // 一個(gè) 1 ;代表 1 面積+ inArea(grid, line - 1, row)+ inArea(grid, line + 1, row)+ inArea(grid, line, row - 1)+ inArea(grid, line, row + 1);}bool Island(vector<vector<int>>& grid,int line,int row) {return 0 <= line && line < grid.size() && 0 <= row && row < grid[0].size();} };

結(jié)果

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的岛屿类-网格类问题-DFS | 力扣695. 岛屿的最大面积的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。