国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[LeetCode] 529. Minesweeper

Alex / 1502人閱讀

Problem

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

You are given a 2D char matrix representing the game board. "M" represents an unrevealed mine, "E" represents an unrevealed empty square, "B" represents a revealed blank square that has no adjacent (above, below, left, right, and all 4 diagonals) mines, digit ("1" to "8") represents how many mines are adjacent to this revealed square, and finally "X" represents a revealed mine.

Now given the next click position (row and column indices) 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 - change it to "X".
If an empty square ("E") with no adjacent mines is revealed, then change it to 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:

[["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:

[["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"]]

Solution
class Solution {
    public char[][] updateBoard(char[][] board, int[] click) {
        int m = board.length, n = board[0].length;
        int row = click[0], col = click[1];
        
        if (board[row][col] == "M") {
            board[row][col] = "X";
            return board;
        }
        
        int count = 0;
        for (int i = -1; i <= 1; i++) {
            for (int j = -1; j <= 1; j++) {
                if (i == 0 && j == 0) continue;
                int r = row+i, c = col+j;
                if (r < 0 || r >= m || c < 0 || c >= n) continue;
                if (board[r][c] == "M" || board[r][c] == "X") {
                    count++;
                }
            }
        }
        
        if (count > 0) board[row][col] = (char)(count+"0");
        else {
            board[row][col] = "B";
            for (int i = -1; i <= 1; i++) {
                for (int j = -1; j <= 1; j++) {
                    if (i == 0 && j == 0) continue;
                    int r = row+i, c = col+j;
                    if (r < 0 || r >= m || c < 0 || c >= n) continue;
                    if (board[r][c] == "E") {
                        updateBoard(board, new int[]{r, c});
                    }
                }
            }
        }
        
        return board;
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/72233.html

相關文章

  • 容器最大盛水量

    摘要:容器最大盛水量給定個非負整數,,,,其中每個表示坐標,處的點。找到兩條線,它們與軸一起形成一個容器,使得容器含有最多的水。 容器最大盛水量 Container With Most Water 給定n個非負整數a1,a2,...,an,其中每個表示坐標(i,ai)處的點。 繪制n條垂直線,使得線i的兩個端點在(i,ai)和(i,0)處。 找到兩條線,它們與x軸一起形成一個容器,使得容器...

    luckyw 評論0 收藏0
  • 根據對象中某一屬性,進行排序

    摘要:如果后臺傳過來的對象,順序是被打亂的或者說,對象有多個屬性,在這個頁面需要按照排序,在另一個頁面需要按照數量排序這里就利用字符的屬性,進行排序了提供了相關的方法需要進行排序的數據一二三四值一轉值成功功值七日值禮拜值調用排序方法,按照為關鍵字 如果后臺傳過來的對象,順序是被打亂的或者說,對象有多個屬性,在這個頁面需要按照id排序,在另一個頁面需要按照數量排序這里就利用字符的Unicode...

    QiShare 評論0 收藏0
  • 根據對象中某一屬性,進行排序

    摘要:如果后臺傳過來的對象,順序是被打亂的或者說,對象有多個屬性,在這個頁面需要按照排序,在另一個頁面需要按照數量排序這里就利用字符的屬性,進行排序了提供了相關的方法需要進行排序的數據一二三四值一轉值成功功值七日值禮拜值調用排序方法,按照為關鍵字 如果后臺傳過來的對象,順序是被打亂的或者說,對象有多個屬性,在這個頁面需要按照id排序,在另一個頁面需要按照數量排序這里就利用字符的Unicode...

    VioletJack 評論0 收藏0
  • 報紙等電子報刊的客戶端的實現原理解密

    摘要:已入深夜,不過忽然想起來之前倒騰過的一個關于電子報刊的客戶端的時候,就寫出來給大家分享一下。大功告成這篇文章主要是便于開發電子報刊應用的時候做服務端,前端,客戶端三類開發人員互相了解對方需要做的事情,希望對大家有幫助,求支持。 已入深夜,不過忽然想起來之前倒騰過的一個關于電子報刊的客戶端的demo時候,就寫出來給大家分享一下。 我以android客戶端的作為例子(IOS大家自己一樣的做...

    Benedict Evans 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<