2101.引爆最多的炸弹
链接:2101.引爆最多的炸弹
难度:Medium
标签:深度优先搜索、广度优先搜索、图、几何、数组、数学
简介:给你数组 bombs ,请你返回在引爆 一个 炸弹的前提下,最多 能引爆的炸弹数目。
题解 1 - python
- 编辑时间:2024-07-22
- 执行用时:510ms
- 内存消耗:17.08MB
- 编程语言:python
- 解法介绍:遍历存储所有爆炸链接后dfs。
class Solution:
def maximumDetonation(self, bombs: List[List[int]]) -> int:
n = len(bombs)
nexts = [[] for _ in range(n)]
for i in range(n):
for j in range(n):
if i != j:
if (bombs[i][0] - bombs[j][0]) ** 2 + (bombs[i][1] - bombs[j][1]) ** 2 <= bombs[i][2] ** 2:
nexts[i].append(j)
def dfs(cur: int, used: List[bool]) -> int:
used[cur] = True
return sum(
dfs(next, used)
for next in nexts[cur]
if not used[next]
) + 1
return max(dfs(i, [False] * n) for i in range(n))