zoukankan      html  css  js  c++  java
  • leetcode 789. Escape The Ghosts

    You are playing a simplified Pacman game. You start at the point (0, 0), and your destination is (target[0], target[1]). There are several ghosts on the map, the i-th ghost starts at (ghosts[i][0], ghosts[i][1]).

    Each turn, you and all ghosts simultaneously may move in one of 4 cardinal directions: north, east, west, or south, going from the previous point to a new point 1 unit of distance away.

    You escape if and only if you can reach the target before any ghost reaches you (for any given moves the ghosts may take.) If you reach any square (including the target) at the same time as a ghost, it doesn't count as an escape.

    Return True if and only if it is possible to escape.

    Example 1:
    Input: 
    ghosts = [[1, 0], [0, 3]]
    target = [0, 1]
    Output: true
    Explanation: 
    You can directly reach the destination (0, 1) at time 1, while the ghosts located at (1, 0) or (0, 3) have no way to catch up with you.
    Example 2:
    Input: 
    ghosts = [[1, 0]]
    target = [2, 0]
    Output: false
    Explanation: 
    You need to reach the destination (2, 0), but the ghost at (1, 0) lies between you and the destination.
    Example 3:
    Input: 
    ghosts = [[2, 0]]
    target = [1, 0]
    Output: false
    Explanation: 
    The ghost can reach the target at the same time as you.
    

    题目大意:你从起点坐标要到大目标坐标,但是一些怪物会拦截你。怪物可以原地不动也可以向四个方向走。问你能不能走到目标坐标。
    思路:一开始没注意到怪物可以不动,一直在想bfs怎么解决这道题目...我愚蠢了。其实只要怪物比你晚到目标点,你就能胜利....

    class Solution {
    public:
        bool escapeGhosts(vector<vector<int>>& ghosts, vector<int>& target) {
            int dist=abs(target[0])+abs(target[1]);
            for(auto g:ghosts)
            {
                int d=abs(target[0]-g[0])+abs(target[1]-g[1]);
                if(d<=dist) return 0;
            }
            return 1;
        }
    };
    
  • 相关阅读:
    Centos7 下安装docker
    在docker容器下安装airflow
    Windows 下部署 hadoop spark环境
    AirFlow功能展示个人笔记
    23.安装php和echarts进行结合展示图表
    22.把hive表中数据导入到mysql中
    21.根据hive绑定数据统计计算保存到hive表中
    20.采集项目流程篇之清洗数据绑定到hive表中
    【线程系列二】线程的五种状态
    数组、链表、和哈希表的区别
  • 原文地址:https://www.cnblogs.com/pk28/p/8470237.html
Copyright © 2011-2022 走看看