C++ Solution with Explanation
Observations:\n\n If a ghost is able to reach you at any point on your path to the target, then the ghost should be able to reach the target at the same time as
### Observations:\n\n* If a ghost is able to reach you at any point on your path to the target, then the ghost should be able to reach the target at the same time as you; The ghost can simply follow your remaining moves towards the target. \n* Therefore we know that we can escape if we can make it to the target before any of the ghosts do. So it\'s in our best interest to arrive at the target in the least number of moves. \n\n### Applying our observations\nGiven a current position of `(x,y)`. The optimal number of moves to the target can be calcuated as:\n`optimal_num_moves = abs(x - target[0]) + abs(y - target[1]);`\n\nSince we start at `(0,0)`:\n`player_optimal_num_moves = abs(0 - target[0]) + abs(0 - target[1]) = abs(target[0]) + abs(target[1])`\n\nFor the ghosts:\n`ghost_optimal_num_moves = abs(ghost[0] - target[0]) + abs(ghost[1] - target[1])`\n\nFrom our observations then, we return false if there is any ghost with an optimal number of moves that is less than the players optimal number of moves. The code is provided below.\n\n### C++ Solution\n```\nclass Solution {\npublic:\n    bool escapeGhosts(vector<vector<int>>& ghosts, vector<int>& target) {\n        int player_optimal_num_moves = abs(target[0]) + abs(target[1]);\n        for (vector<int>& ghost : ghosts) {\n            int ghost_optimal_num_moves = abs(ghost[0] - target[0]) + abs(ghost[1] - target[1]);\n            if (ghost_optimal_num_moves <= player_optimal_num_moves) return false;\n        }\n        return true;\n    }\n};\n```
[]