Re: [閒聊] 每日leetcode

看板Marginalman作者 (死肥肥社管)時間1年前 (2024/08/28 08:38), 1年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串774/1553 (看更多)
1905. Count Sub Islands 給兩個grid 求grid2的islands中是grid1的sub island的數量 思路 先從grid2每格dfs找island 找過的 找過就改掉當成visited過 過程中每格都比較看看grid1裡面對應格子是不是等於1 最後回傳結果 是的話counter +1 class Solution { public: const int dx[4] = {-1,0,1,0}, dy[4] = {0,1,0,-1}; bool isSubIsland(int i , int j, vector<vector<int>>& grid1, vector<vector< int>>& grid2){ int m = grid1.size(), n = grid1[0].size(); bool result = true; grid2[i][j] = 0; if(grid1[i][j] == 0) result = false; for(int k = 0; k < 4; ++k){ int ni = i + dx[k], nj= j + dy[k]; if(ni >= 0 && ni < m && nj >= 0 && nj < n && grid2[ni][nj]){ result &= isSubIsland(ni, nj, grid1, grid2); } } return result; } int countSubIslands(vector<vector<int>>& grid1, vector<vector<int>>& grid2 ) { int m = grid1.size(), n = grid1[0].size(), ans = 0; for(int i = 0; i < m; ++i){ for(int j =0; j < n; ++j){ if(grid2[i][j] == 1){ if(isSubIsland(i, j, grid1, grid2)) ans ++; } } } return ans; } }; ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.222.80 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1724805499.A.2C9.html ※ 編輯: argorok (114.34.222.80 臺灣), 08/28/2024 08:43:41
文章代碼(AID): #1cpd5xB9 (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cpd5xB9 (Marginalman)