• 网络信号最好的坐标 (暴力leetcode1620)-------------------c++实现


    网络信号最好的坐标 (暴力leetcode1620)-------------------c++实现

    题目表述

    给你一个数组 towers 和一个整数 radius 。

    数组 towers 中包含一些网络信号塔,其中 towers[i] = [xi, yi, qi] 表示第 i 个网络信号塔的坐标是 (xi, yi) 且信号强度参数为 qi 。所有坐标都是在 X-Y 坐标系内的 整数 坐标。两个坐标之间的距离用 欧几里得距离 计算。

    整数 radius 表示一个塔 能到达 的 最远距离 。如果一个坐标跟塔的距离在 radius 以内,那么该塔的信号可以到达该坐标。在这个范围以外信号会很微弱,所以 radius 以外的距离该塔是 不能到达的 。

    如果第 i 个塔能到达 (x, y) ,那么该塔在此处的信号为 ⌊qi / (1 + d)⌋ ,其中 d 是塔跟此坐标的距离。一个坐标的 信号强度 是所有 能到达 该坐标的塔的信号强度之和。

    请你返回数组 [cx, cy] ,表示 信号强度 最大的 整数 坐标点 (cx, cy) 。如果有多个坐标网络信号一样大,请你返回字典序最小的 非负 坐标。

    注意:

    坐标 (x1, y1) 字典序比另一个坐标 (x2, y2) 小,需满足以下条件之一:
    要么 x1 < x2 ,
    要么 x1 == x2 且 y1 < y2 。
    ⌊val⌋ 表示小于等于 val 的最大整数(向下取整函数)。

    样例

    输入:towers = [[1,2,5],[2,1,7],[3,1,9]], radius = 2
    输出:[2,1]
    解释:
    坐标 (2, 1) 信号强度之和为 13

    • 塔 (2, 1) 强度参数为 7 ,在该点强度为 ⌊7 / (1 + sqrt(0)⌋ = ⌊7⌋ = 7
    • 塔 (1, 2) 强度参数为 5 ,在该点强度为 ⌊5 / (1 + sqrt(2)⌋ = ⌊2.07⌋ = 2
    • 塔 (3, 1) 强度参数为 9 ,在该点强度为 ⌊9 / (1 + sqrt(1)⌋ = ⌊4.5⌋ = 4
      没有别的坐标有更大的信号强度。

    条件

    1 <= towers.length <= 50
    towers[i].length == 3
    0 <= xi, yi, qi <= 50
    1 <= radius <= 50

    思路

    暴力,用51*51的每个点都计算一遍辐射值

    注意点

    注意条件限制

    ac代码

    c++:
    class Solution {
    public:
        vector<int> bestCoordinate(vector<vector<int>>& towers, int radius) {
                  vector<int> radi(towers.size(),0);   //每个点接受的辐射
                  int x1=0,y1=0,max = 0,now;
                  double d;
                  for(int i = 0;i<=50;i++)   //x坐标
                  for(int j = 0;j<=50;j++)   //y坐标
                  {
                            now=0;
                      for(int z=0;z<towers.size();z++)
                      {
                       d = sqrt(pow((towers[z][0]-i),2)+pow((towers[z][1]-j),2));
                       if(d<=radius)
                          now+=(int)(towers[z][2]/(d+1));
                      }
                      if(now>max)
                      {
                          max = now;
                          x1 = i;
                          y1 = j;
                        //   cout<<"now: "<
                      }
                      }
                    vector<int> result(2);
                    result[0]=x1;
                    result[1]=y1;
                        
                      return result;
                  }
    };
    
    //如果只计算塔所在的点则用下面的代码
                //  double d;
                //  int max = 0,maxx = 0,maxy = 0;
                //   for(int i =0;i
                //   {
                //       radi[i]+=towers[i][2];
                //       for(int j=0;j
                //       {
                //           d = sqrt(pow((towers[i][0]-towers[j][0]),2)+pow((towers[i][1]-towers[j][1]),2));
                //         //  cout<
                //          if(d<=radius)
                //           {
                //           radi[j]+=(towers[i][2]/(d+1));
                //           radi[i]+=(towers[j][2]/(d+1));
                //           }
                //       }
     
                //   }
                //   for(int i =0;i
                //      if(radi[i]>max||radi[i]==max&&towers[i][0]
                //     {  max = radi[i];
                //        maxx=towers[i][0];
                //        maxy=towers[i][1];
                //     }
                //     //  cout<
                     
                //     vector result(2);
                //     result[0]=maxx;
                //     result[1]=maxy;
                //     return result;
                  
    //     }
    // };
    
    • 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
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/coordinate-with-maximum-network-quality
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 相关阅读:
    【EMR】HBase替换现有底层存储hdfs为oss
    高德地图驾车导航避让点位
    【SpringBoot】多环境配置
    Friend.tech(FT):社交媒体金融的未来,真的如此美好吗?
    Python自学之路--002:Python 如何生成exe可执行文件
    Mysql分组查询每组最新的一条数据,查询用户的最新的一条记录
    《DevOps实践指南》笔记:第7章
    智能车联网安全发展形势、挑战
    英雄算法7月24号
    3d-DNA组装基因组
  • 原文地址:https://blog.csdn.net/yusude123456/article/details/127649763