-
[LeetCode] 695. Max Area of Island c++Coding Test/LeetCode 2022. 12. 28. 21:25728x90
문제
You are given an m x n binary matrix grid. 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.
The area of an island is the number of cells with a value 1 in the island.
Return the maximum area of an island in grid. If there is no island, return 0.
배열의 요소 값이 1이고, 1이 상하좌우로 연속되어 있을 때 1의 최대 값을 구하는 문제이다.
문제 해결
class Solution { private: int n = 0, m = 0; int trav(int i, int j, vector<vector<int>>& grid){ if(i < 0 || i >= n || j < 0 || j >= m || !grid[i][j]){ return 0; } grid[i][j] = 0; return 1 + trav(i-1, j, grid) + trav(i+1, j, grid) + trav(i, j-1, grid) + trav(i, j+1, grid); } public: int maxAreaOfIsland(vector<vector<int>>& grid) { int ans = 0; n = grid.size(), m = grid[0].size(); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(grid[i][j]){ ans = max( ans, trav(i, j, grid)); } } } return ans; } };
728x90'Coding Test > LeetCode' 카테고리의 다른 글
[LeetCode] 542. 01 Matrix c++ (0) 2023.01.03 [LeetCode] 116. Populating Next Right Pointers in Each Node c++ (0) 2023.01.02 [LeetCode] 733. Flood Fill c++ (0) 2022.12.28 [LeetCode] 1876. Substrings of Size Three with Distinct Characters c++ (0) 2022.12.27 [LeetCode] 567. Permutation in String c++ (0) 2022.12.27