作者oin1104 (是oin的說)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Wed Aug 28 11:30:57 2024
※ 引述 《argorok (死肥肥社管)》 之銘言:
:
: 1905. Count Sub Islands
:
: 給兩個grid 求grid2的islands中是grid1的sub island的數量
sub island :
當前island
全部的格子都在grid1的那個island裡面
只要超出去一個就不算
思路 :
一邊遍歷所有grid2的island
順便看當前island
有沒有全部跟grid1的island 重疊
然後加起來就好了
```cpp
class Solution {
public:
vector<vector<int>> paper;
void go(vector<vector<int>>& grid , int i , int j , int &jiwp)
{
if(i<0 || i>=grid.size() || j<0 || j>=grid[0].size())return;
if(grid[i][j]==0)return;
grid[i][j]=0;
if(paper[i][j]==0)jiwp = 0;
go(grid,i-1,j,jiwp);
go(grid,i+1,j,jiwp);
go(grid,i,j-1,jiwp);
go(grid,i,j+1,jiwp);
}
int countSubIslands(vector<vector<int>>& grid1, vector<vector<int>>& grid2)
{
paper = grid1;
int n = grid2.size();
int m = grid2[0].size();
int res = 0;
for(int i = 0 ; i < n ; i ++)
{
for(int j = 0 ; j < m ; j++)
{
if(grid2[i][j]==0)continue;
int jiwp = 1;
go(grid2,i,j,jiwp);
if(jiwp)res++;
}
}
return res;
}
};
```
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.18.201 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1724815859.A.E4D.html
推 PogChampLUL: 為啥有jiwp 08/28 11:33
→ oin1104: 因為他可以01自由切換 很好用 08/28 11:33
推 PogChampLUL: 你真的很噁 08/28 11:41
→ oin1104: . 08/28 11:43