class Solution {
public:
//对于玩家和阻碍者来说,到达终点的最短距离都是当前位置和目的地的曼哈顿距离
//计算曼哈顿距离 dis=|x1-x2|+|y1-y2|
int mandis(vector<int>point1,vector<int>point2){
return abs(point1[0]-point2[0])+abs(point1[1]-point2[1]);
}
bool escapeGhosts(vector<vector<int>>& ghosts, vector<int>& target) {
//计算玩家到达终点的曼哈顿距离
int dis=mandis({0,0},target);
//计算每个阻碍者到达目的地的曼哈顿距离
for(auto point:ghosts){
int ghdis=mandis(point,target);
//如果任意一个阻碍者到达终点的最短距离(曼哈顿距离)小于等于玩家到达终点的最短距离(曼哈顿距离),则逃脱失败
if(ghdis<=dis){
return false;
}
}
return true; //逃脱成功
}
};