kk
This commit is contained in:
50
src/main/java/com/dota/graph/_2101/Solution.java
Normal file
50
src/main/java/com/dota/graph/_2101/Solution.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package com.dota.graph._2101;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
class Solution {
|
||||
public int maximumDetonation(int[][] bombs) {
|
||||
int n = bombs.length;
|
||||
var g = new ArrayList<List<Integer>>();
|
||||
for (int i = 0; i < n; i++) {
|
||||
g.add(new ArrayList<>());
|
||||
;
|
||||
}
|
||||
int max = 1;
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = i + 1; j < n; j++) {
|
||||
long a = bombs[i][0] - bombs[j][0];
|
||||
long b = bombs[i][1] - bombs[j][1];
|
||||
long c = bombs[i][2];
|
||||
long d = bombs[j][2];
|
||||
if (a * a + b * b <= c * c) {
|
||||
g.get(i).add(j);
|
||||
}
|
||||
if (a * a + b * b <= d * d) {
|
||||
g.get(j).add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
int size = df(g, new boolean[n], i);
|
||||
if (size > max) {
|
||||
max = size;
|
||||
}
|
||||
}
|
||||
|
||||
return max;
|
||||
}
|
||||
|
||||
int df(List<List<Integer>> g, boolean[] visited, int x) {
|
||||
visited[x] = true;
|
||||
int size = 1;
|
||||
for (Integer i : g.get(x)) {
|
||||
if (!visited[i]) {
|
||||
size += df(g, visited, i);
|
||||
}
|
||||
}
|
||||
return size;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user