-
Notifications
You must be signed in to change notification settings - Fork 119
/
Copy pathCoordinate With Maximum Network Quality.js
51 lines (39 loc) · 1.22 KB
/
Coordinate With Maximum Network Quality.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var bestCoordinate = function(towers, radius) {
const n = towers.length;
const grid = [];
for (let i = 0; i <= 50; i++) {
grid[i] = new Array(51).fill(0);
}
for (let i = 0; i < n; i++) {
const [x1, y1, quality1] = towers[i];
for (let x2 = 0; x2 <= 50; x2++) {
for (let y2 = 0; y2 <= 50; y2++) {
const dist = Math.sqrt((x1 - x2)**2 + (y1 - y2)**2);
if (dist > radius) continue;
const network = Math.floor(quality1 / (1 + dist));
grid[x2][y2] += network;
}
}
}
let maxX = 0;
let maxY = 0;
let maxVal = grid[0][0];
for (let i = 0; i <= 50; i++) {
for (let j = 0; j <= 50; j++) {
const val = grid[i][j];
if (val > maxVal) {
maxVal = val;
maxX = i;
maxY = j;
}
else if (val === maxVal) {
if (i < maxX || (i === maxX && j < maxY)) {
maxVal = val;
maxX = i;
maxY = j;
}
}
}
}
return [maxX, maxY];
};