LeetCode-789-逃脱阻碍者

题目

在这里插入图片描述

思路

  1. 主要靠理解题意,看了一会儿想法是进行每一步的判定,但是太复杂了不可能实现,于是点进评论,才发现只用判断是否有人距离target比自己更近就行(因为对面更近的话完全可以提前到target等自己)
  2. 但是我用距离就走入了一个误区,毕竟是直线走的,写了半天用Math.sqrt计算距离是不对的,想复杂了,直接x-xi,y-yi判断即可…

代码

    public boolean escapeGhosts(int[][] ghosts, int[] target) {
        //自己的距离
    	int mylength =Math.abs(target[0])+Math.abs(target[1]);
    	//阻碍者的距离是否比自己小 如果出现比自己小的 返回false
    	for(int i=0;i<ghosts.length;i++){
    		//当前的距离
    		int ghostslength = Math.abs(ghosts[i][0]-target[0])+Math.abs(ghosts[i][1]-target[1]);
    		if (ghostslength<=mylength) return false;
    	}
    	return true;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值