2022-03-27 20:46:41 +08:00
< p > You are given an < code > m x n< / code > integer array < code > grid< / code > where < code > grid[i][j]< / code > could be:< / p >
< ul >
< li > < code > 1< / code > representing the starting square. There is exactly one starting square.< / li >
< li > < code > 2< / code > representing the ending square. There is exactly one ending square.< / li >
< li > < code > 0< / code > representing empty squares we can walk over.< / li >
< li > < code > -1< / code > representing obstacles that we cannot walk over.< / li >
< / ul >
< p > Return < em > the number of 4-directional walks from the starting square to the ending square, that walk over every non-obstacle square exactly once< / em > .< / p >
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 20:46:41 +08:00
< img alt = "" src = "https://assets.leetcode.com/uploads/2021/08/02/lc-unique1.jpg" style = "width: 324px; height: 245px;" / >
< pre >
< strong > Input:< / strong > grid = [[1,0,0,0],[0,0,0,0],[0,0,2,-1]]
< strong > Output:< / strong > 2
< strong > Explanation:< / strong > We have the following two paths:
1. (0,0),(0,1),(0,2),(0,3),(1,3),(1,2),(1,1),(1,0),(2,0),(2,1),(2,2)
2. (0,0),(1,0),(2,0),(2,1),(1,1),(0,1),(0,2),(0,3),(1,3),(1,2),(2,2)
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 20:46:41 +08:00
< img alt = "" src = "https://assets.leetcode.com/uploads/2021/08/02/lc-unique2.jpg" style = "width: 324px; height: 245px;" / >
< pre >
< strong > Input:< / strong > grid = [[1,0,0,0],[0,0,0,0],[0,0,0,2]]
< strong > Output:< / strong > 4
< strong > Explanation:< / strong > We have the following four paths:
1. (0,0),(0,1),(0,2),(0,3),(1,3),(1,2),(1,1),(1,0),(2,0),(2,1),(2,2),(2,3)
2. (0,0),(0,1),(1,1),(1,0),(2,0),(2,1),(2,2),(1,2),(0,2),(0,3),(1,3),(2,3)
3. (0,0),(1,0),(2,0),(2,1),(2,2),(1,2),(1,1),(0,1),(0,2),(0,3),(1,3),(2,3)
4. (0,0),(1,0),(2,0),(2,1),(1,1),(0,1),(0,2),(0,3),(1,3),(1,2),(2,2),(2,3)
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 3:< / strong > < / p >
2022-03-27 20:46:41 +08:00
< img alt = "" src = "https://assets.leetcode.com/uploads/2021/08/02/lc-unique3-.jpg" style = "width: 164px; height: 165px;" / >
< pre >
< strong > Input:< / strong > grid = [[0,1],[2,0]]
< strong > Output:< / strong > 0
< strong > Explanation:< / strong > There is no path that walks over every empty square exactly once.
Note that the starting and ending square can be anywhere in the grid.
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > m == grid.length< / code > < / li >
< li > < code > n == grid[i].length< / code > < / li >
< li > < code > 1 < = m, n < = 20< / code > < / li >
< li > < code > 1 < = m * n < = 20< / code > < / li >
< li > < code > -1 < = grid[i][j] < = 2< / code > < / li >
< li > There is exactly one starting cell and one ending cell.< / li >
< / ul >