1620. 网络信号最好的坐标

题目:

给你一个数组 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) 。如果有多个坐标网络信号一样大,请你返回字典序最小的 非负 坐标。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/coordinate-with-maximum-network-quality

解题思路:采用暴力破解.

代码:(JAVA)

class Solution {
	    public int[] bestCoordinate(int[][] towers, int radius) {
	    int value =0,ansX=0,ansY = 0,maxValue=0;
	    for(int i=0;i<=50;i++) {  //坐标x
	    	for(int j=0;j<=50;j++) {  //坐标y
	    		for(int k=0;k<towers.length;k++) {  //求总信号
	    			double d = Math.sqrt((i-towers[k][0])*(i-towers[k][0])+(j-towers[k][1])*(j-towers[k][1]));
	    			if(d<=radius) {  //距离满足条件才进行求总总信号
	    				value += (int)(towers[k][2]/(1+d));
	    			}
	    			
	    		}
	    		if(value>maxValue) {//找到更大的信号点
    				maxValue = value;
    				ansX = i;  //记录该点
    				ansY = j;
    			}
	    		value=0;
	    	}
	    }
	     return new int[] {ansX,ansY};
	    }
	}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值