2101. Detonate the Maximum Bombs

Detonate the Maximum Bombs (LeetCode 2101) is a Medium Data Structures and Algorithms interview problem you can solve, run and submit on Thita.ai. It belongs to the Graph Traversal Patterns (DFS & BFS) pattern, in the Graph DFS - Connected Components / Island Counting subpattern.

How to solve Detonate the Maximum Bombs

Detonate the Maximum Bombs is a DFS Connected Components problem, part of Graph Traversal Patterns (DFS & BFS). Use DFS to find connected components and count islands in grids. Flood fill and province counting problems.

Work towards the solution in these steps:

  1. How can we model the relationship between different bombs? Can "graphs" help us?
  2. Bombs are nodes and are connected to other bombs in their range by directed edges.
  3. If we know which bombs will be affected when any bomb is detonated, how can we find the total number of bombs that will be detonated if we start from a fixed bomb?

The reference solution runs in O(|V|^2 + |V| * |E|) time and O(|V| + |E|) space.

The Detonate the Maximum Bombs solution and editorial walks through the full approach with reference code.

Problem statement

You are given a list of bombs. The range of a bomb is defined as the area where its effect can be felt. This area is in the shape of a circle with the center as the location of the bomb.

The bombs are represented by a 0-indexed 2D integer array bombs where bombs[i] = [xi, yi, ri]. xi and yi denote the X-coordinate and Y-coordinate of the location of the ith bomb, whereas ri denotes the radius of its range.

You may choose to detonate a single bomb. When a bomb is detonated, it will detonate all bombs that lie in its range. These bombs will further detonate the bombs that lie in their ranges.

Given the list of bombs, return the maximum number of bombs that can be detonated if you are allowed to detonate only one bomb.

Example 1:

Input: bombs = [[2,1,3],[6,1,4]] Output: 2 Explanation: The above figure shows the positions and ranges of the 2 bombs. If we detonate the left bomb, the right bomb will not be affected. But if we detonate the right bomb, both bombs will be detonated. So the maximum bombs that can be detonated is max(1, 2) = 2.

Example 2:

Input: bombs = [[1,1,5],[10,10,5]] Output: 1 Explanation: Detonating either bomb will not detonate the other bomb, so the maximum number of bombs that can be detonated is 1.

Example 3:

Input: bombs = [[1,2,3],[2,3,1],[3,4,2],[4,5,3],[5,6,4]] Output: 5 Explanation: The best bomb to detonate is bomb 0 because: - Bomb 0 detonates bombs 1 and 2. The red circle denotes the range of bomb 0. - Bomb 2 detonates bomb 3. The blue circle denotes the range of bomb 2. - Bomb 3 detonates bomb 4. The green circle denotes the range of bomb 3. Thus all 5 bombs are detonated.

Constraints:

- 1 <= bombs.length <= 100

- bombs[i].length == 3

- 1 <= xi, yi, ri <= 10^5

Topics and companies

Topics: Array, Math, Depth-First Search, Breadth-First Search, Graph, Geometry.

How to practise Detonate the Maximum Bombs on Thita.ai

Starter code is provided in C, C#, C++, Go, Java, JavaScript and Python. Your solution runs against 5 test cases for this problem, with the AI coach available for a hint when you are stuck rather than a finished answer. The reference solution runs in O(|V|^2 + |V| * |E|) time and O(|V| + |E|) space.

Open Detonate the Maximum Bombs in the code editor, or read the Detonate the Maximum Bombs editorial for a worked solution with its approach and complexity analysis.

Where Detonate the Maximum Bombs sits in the DSA pattern sheet

Problems related to Detonate the Maximum Bombs

Other problems that use the same Graph DFS - Connected Components / Island Counting and Graph Traversal Patterns (DFS & BFS) techniques:

Detonate the Maximum Bombs FAQ

What is the LeetCode number of Detonate the Maximum Bombs?

Detonate the Maximum Bombs is LeetCode problem 2101, rated Medium.

What pattern is used to solve Detonate the Maximum Bombs?

Detonate the Maximum Bombs is a DFS Connected Components problem. It belongs to the Graph Traversal Patterns (DFS & BFS) pattern, in the Graph DFS - Connected Components / Island Counting subpattern.

What is the time complexity of Detonate the Maximum Bombs?

The reference solution runs in O(|V|^2 + |V| * |E|) time and O(|V| + |E|) space.

Preparing this workspace.