Class Solution
- java.lang.Object
-
- g0901_1000.s0913_cat_and_mouse.Solution
-
public class Solution extends Object
913 - Cat and Mouse.Hard
A game on an undirected graph is played by two players, Mouse and Cat, who alternate turns.
The graph is given as follows:
graph[a]is a list of all nodesbsuch thatabis an edge of the graph.The mouse starts at node
1and goes first, the cat starts at node2and goes second, and there is a hole at node0.During each player’s turn, they must travel along one edge of the graph that meets where they are. For example, if the Mouse is at node 1, it must travel to any node in
graph[1].Additionally, it is not allowed for the Cat to travel to the Hole (node 0.)
Then, the game can end in three ways:
- If ever the Cat occupies the same node as the Mouse, the Cat wins.
- If ever the Mouse reaches the Hole, the Mouse wins.
- If ever a position is repeated (i.e., the players are in the same position as a previous turn, and it is the same player’s turn to move), the game is a draw.
Given a
graph, and assuming both players play optimally, return1if the mouse wins the game,2if the cat wins the game, or0if the game is a draw.
Example 1:

Input: graph = [[2,5],[3],[0,4,5],[1,4,5],[2,3],[0,2,3]]
Output: 0
Example 2:

Input: graph = [[1,3],[0],[3],[0,2]]
Output: 1
Constraints:
3 <= graph.length <= 501 <= graph[i].length < graph.length0 <= graph[i][j] < graph.lengthgraph[i][j] != igraph[i]is unique.- The mouse and the cat can always move.
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcatMouseGame(int[][] graph)
-