[11.2]1620. 网络信号最好的坐标

题目链接:1620. 网络信号最好的坐标

解题思路

由图可以知道,我们的目标点只可能在红色虚线框内。因此,我们首先要确定目标点的范围。即存在的信号塔的最大范围 x_min, x_max, y_min, y_max

然后就循环遍历在这个范围内的所有点,找到最合适的那一个。
image.png

代码

class Solution:
    def bestCoordinate(self, towers: List[List[int]], radius: int) -> List[int]:
        # 定义范围
        x_max = max([t[0] for t in towers])
        x_min = min([t[0] for t in towers])
        y_max = max([t[1] for t in towers])
        y_min = min([t[1] for t in towers])

        cx, cy, best_power = 0, 0, 0
        # 遍历
        for i in range(x_min, x_max + 1):
            for j in range(y_min, y_max + 1):
                power = 0
                for x, y, q in towers:
                    dis = (x - i) ** 2 + (y - j) ** 2
                    if dis <= radius ** 2:
                        power += floor(q / (1 + dis ** 0.5))
                if power > best_power:
                    best_power = power
                    cx, cy = i, j
        return [cx, cy]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值