题目描述
解题思路
一开始将题目的意思理解错了,写代码写到一半发现,好像是要找位置,不是单纯的根据已知坐标求取位置。那该怎么考虑呢。。。。。。不好意思,看了题解。主要分为两种情况,一种就是x大于横坐标的最大值或者y坐标大于纵坐标的最大值。这种情况,可以很清楚的考虑清楚,这个就是坐标的终止条件。
另一种情况就是小于0的情况,由于坐标的均大于0(题目规定),所以任意一信号塔达到0,0的距离肯定小于到达负坐标的位置,综上,得到求取坐标的范围[0,xmax],[0,ymax]。不知道大家能否理解我说的意思。
代码实现
class Solution:
def bestCoordinate(self, towers: List[List[int]], radius: int) -> List[int]:
#定义一个二维数组,这个里面存放的就是欧式距离
xmax=max([t[0] for t in towers])
ymax=max([t[1] for t in towers])
cx=cy=maxquality=0
for x in range(xmax+1):
for y in range(ymax+1):
quality=0
for tx,ty,q in towers:
d=(x-tx)**2+(y-ty)**2
if d<=radius**2:
quality+=int(q/(1+d**0.5))
if quality>maxquality:
cx,cy,maxquality=x,y,quality
return [cx,cy]