2101. 引爆最多的炸弹
题目链接:2101. 引爆最多的炸弹
代码如下:
//参考链接:https://leetcode.cn/problems/detonate-the-maximum-bombs/solutions/1152450/jian-tu-bao-li-mei-ju-suo-you-qi-dian-by-h4mj
class Solution
{
public:
int maximumDetonation(vector<vector<int>>& bombs)
{
vector<vector<int>> graph(bombs.size());
for(int i=0;i<bombs.size();i++)
{
long long x=bombs[i][0],y=bombs[i][1],r=bombs[i][2];
for(int j=0;j<bombs.size();j++)
{
long long dx=x-bombs[j][0];
long long dy=y-bombs[j][1];
if(j!=i&&dx*dx+dy*dy<=r*r)
{
graph[i].push_back(j);//i 可以引爆 j
}
}
}
int res=0;
vector<int> visited(bombs.size());
auto dfs=[&](auto&& dfs,int x)->int
{
visited[x]=true;
int count=1;
for(int y:graph[x])
{
if(!visited[y])
{
count+=dfs(dfs,y);
}
}
return count;
};
for(int i=0;i<bombs.size();i++)
{
ranges::fill(visited,0);
res=max(res,dfs(dfs,i));
}
return res;
}
};