题目如下
数据范围
示例
观察数据范围我们可以看到信号塔最多只有50座而x 与 y范围则是在0到50之间。
如果我们暴力枚举的话计算次数最多51 * 51 * 50时间复杂度即为O(n * n * M)
显然题目暗示我们使用枚举法
通过代码
class Solution {
public:
vector<int> bestCoordinate(vector<vector<int>>& towers, int radius) {
int n = towers.size();
int big = -1;
int a,b,t;
vector<int> ans(2);
for(int x = 0;x <= 50;x++) {
for(int y = 0;y <= 50;y++) {
t = 0;
for(int i = 0;i < n;i++) {
a = towers[i][0] - x;
b = towers[i][1] - y;
if(sqrt(a * a + b * b) <= radius) {
t += (int)(towers[i][2]/(1 + sqrt(a * a + b * b)));
}
}
if(t > big) {
big = t;
ans[0] = x;ans[1] = y;
}
}
}
return ans;
}
};