✅ [Python] DFS || Explained ||  Easy to Understand || Faster 100%
First Construct a graph, each bomb as a vertex, if b is within the explosion radius of a, then there is a directed edge from a to b. Construct the adjacency mat
* First Construct a graph, each bomb as a vertex, if b is within the explosion radius of a, then there is a directed edge from a to b. Construct the adjacency matrix of the Directed graph.\n\t* Note that this is a directed graph, so we cannot use UnionFindSet.\n* Traverse each bomb as the starting point and count the number of nodes it can reach on graph.\n* Return the max count number.\n```\nclass Solution(object):\n    def maximumDetonation(self, bombs):\n        def count(i):\n            dq, ret = [i], [i]\n            while len(dq) > 0:\n                i = dq.pop()\n                for j in adj[i]:\n                    if j not in ret and j not in dq:\n                        dq.append(j)\n                        ret.append(j)\n            return len(ret)\n\n        adj = collections.defaultdict(list)\n        for i in range(len(bombs)):\n            for j in range(i + 1, len(bombs)):\n                if (bombs[i][0] - bombs[j][0]) ** 2 + (bombs[i][1] - bombs[j][1]) ** 2 <= bombs[i][2] ** 2:\n                    adj[i].append(j)\n                if (bombs[i][0] - bombs[j][0]) ** 2 + (bombs[i][1] - bombs[j][1]) ** 2 <= bombs[j][2] ** 2:\n                    adj[j].append(i)\n        ret = 0\n        for i in range(len(bombs)):\n            ret = max(ret, count(i))\n        return ret\n```\n**Please UPVOTE!**
['Python']