Given an `n x n` binary matrix `grid`, return the length of the shortest **clear path** from the top-left cell to the bottom-right cell, or `-1` if none exists.
A clear path visits only cells with value `0` and may move in any of the **8 directions**. Path length counts the number of visited cells.
Example 1
Input:grid = [[0,1],[1,0]]
Output:2
Explanation:Diagonal move from (0,0) to (1,1).
Example 2
Input:grid = [[0,0,0],[1,1,0],[1,1,0]]
Output:4
Explanation:A 4-cell path reaches the corner.
Constraints
- n == grid.length == grid[i].length
- 1 <= n <= 100
- grid[i][j] is 0 or 1