力扣-1620. 网络信号最好的坐标

本文最后更新于:2022年11月2日 晚上

题目描述

1620

思路和实现

能有什么思路啊?思路就是审题,别跟我一样一开始还以为求哪个塔的信号强度最高就好了,真的服了。
哦对了,注意一下“如果一个坐标跟塔的距离在 radius 以内”这句话,这个以内是小于等于,哈哈,翻译拖出去枪毙,不会翻译可以直接写 dis <= radius 好吗?
我想到的就是遍历求出每个点的信号强度,我还以为能有什么高手思路,结果是纯纯遍历题,就这还给了个中等,纯题目难读,不想多说了,就这样吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution:
def bestCoordinate(self, towers: List[List[int]], radius: int) -> List[int]:
max_x = max(t[0] for t in towers)
max_y = max(t[1] for t in towers)
max_signal = ([0, 0], 0) # 用元组保存最大信号强度坐标
for x in range(max_x + 1):
for y in range(max_y + 1):
tmp_signal = 0 # 保存当前塔得信号强度
for i2, t2 in enumerate(towers):
if x == t2[0] and y == t2[1]:
tmp_signal += t2[2]
continue
dis = math.sqrt((x - t2[0]) ** 2 + (y - t2[1]) ** 2) # 欧几里得距离怎么算?sqrt((x1 - x2)^2 + (y1 - y2)^2)
if dis <= radius: # 能到达
tmp_signal += int(t2[2] / (1 + dis))
if tmp_signal > max_signal[1]:
max_signal = ([x, y], tmp_signal)
return max_signal[0]

这里有一只爱丽丝

希望本文章能够帮到您~


力扣-1620. 网络信号最好的坐标
https://map1e-g.github.io/2022/11/02/leetcode-1620/
作者
MaP1e-G
发布于
2022年11月2日
许可协议