Class Solution

  • All Implemented Interfaces:

    
    public final class Solution
    
                        

    529 - Minesweeper\.

    Medium

    Let's play the minesweeper game (Wikipedia, online game)!

    You are given an m x n char matrix board representing the game board where:

    • 'M' represents an unrevealed mine,

    • 'E' represents an unrevealed empty square,

    • 'B' represents a revealed blank square that has no adjacent mines (i.e., above, below, left, right, and all 4 diagonals),

    • digit ('1' to '8') represents how many mines are adjacent to this revealed square, and

    • 'X' represents a revealed mine.

    You are also given an integer array click where <code>click = click<sub>r</sub>, click<sub>c</sub></code> represents the next click position among all the unrevealed squares ('M' or 'E').

    Return the board after revealing this position according to the following rules:

    • If a mine 'M' is revealed, then the game is over. You should change it to 'X'.

    • If an empty square 'E' with no adjacent mines is revealed, then change it to a revealed blank 'B' and all of its adjacent unrevealed squares should be revealed recursively.

    • If an empty square 'E' with at least one adjacent mine is revealed, then change it to a digit ('1' to '8') representing the number of adjacent mines.

    • Return the board when no more squares will be revealed.

    Example 1:

    Input: board = \[\["E","E","E","E","E"],"E","E","M","E","E","E","E","E","E","E","E","E","E","E","E"], click = 3,0

    Output: ["B","1","E","1","B","B","1","M","1","B","B","1","1","1","B","B","B","B","B","B"]

    Example 2:

    Input: board = \[\["B","1","E","1","B"],"B","1","M","1","B","B","1","1","1","B","B","B","B","B","B"], click = 1,2

    Output: ["B","1","E","1","B","B","1","X","1","B","B","1","1","1","B","B","B","B","B","B"]

    Constraints:

    • m == board.length

    • n == board[i].length

    • 1 &lt;= m, n &lt;= 50

    • board[i][j] is either 'M', 'E', 'B', or a digit from '1' to '8'.

    • click.length == 2

    • <code>0 <= click<sub>r</sub>< m</code>

    • <code>0 <= click<sub>c</sub>< n</code>

    • <code>boardclick<sub>c</sub></code> is either 'M' or 'E'.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      Solution()
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final Array<CharArray> updateBoard(Array<CharArray> board, IntArray c)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait