LeetCode 529 掃雷遊戲

2022-01-29 19:54:50 字數 1195 閱讀 7744

529. 掃雷遊戲

讓我們一起來玩掃雷遊戲!

給定乙個代表遊戲板的二維字元矩陣。 'm' 代表乙個未挖出的地雷,'e' 代表乙個未挖出的空方塊,'b' 代表沒有相鄰(上,下,左,右,和所有4個對角線)地雷的已挖出的空白方塊,數字('1' 到 '8')表示有多少地雷與這塊已挖出的方塊相鄰,'x' 則表示乙個已挖出的地雷。

典型的bfs或者dfs。

給定初始二維陣列和起點,返回修改後的二維陣列。

寫dfs相關題目的時候,只要把邊界條件,遞迴條件判斷好就行了,這也是比較難的地方。

bfs就是利用佇列來實現,依葫蘆畫瓢就ok了

class solution ,,,,,,,};

public char updateboard(char board, int click)

else dfs(board,x,y);

return board;

}void dfs(char board,int x,int y)

if(cnt>0)else

for(int i = 0; i < 8; i++)}}

**中viewer陣列是關鍵,一開始超時了就是因為把很多重複判斷過的點又加入佇列中,

dfs可能不需要viewer陣列用於記錄某點是否遍歷過

但是bfs是一定需要的!!!!!

class solution ,,,,,,,};

queuequeue = new linkedlist<>();

public char updateboard(char board, int click) else;

queue.offer(buf);

//viewe陣列用於記錄該座標點是否以及遍歷過!

int viewer = new int[board.length][board[0].length];

while(!queue.isempty())

//若空地(temp[0],temp[1])周圍有雷,則將該位置修改為雷數;否則將該位置更新為『b』,並將其8鄰域中的空地入隊,繼續進行bfs搜尋。

if(cnt>0)else);}}

}return board;}}

}

529 掃雷遊戲

題目描述 讓我們一起來玩掃雷遊戲!給定乙個代表遊戲板的二維字元矩陣。m 代表乙個未挖出的地雷,e 代表乙個未挖出的空方塊,b 代表沒有相鄰 上,下,左,右,和所有4個對角線 地雷的已挖出的空白方塊,數字 1 到 8 表示有多少地雷與這塊已挖出的方塊相鄰,x 則表示乙個已挖出的地雷。如果乙個地雷 m ...

Leetcode 廣搜 深搜 掃雷遊戲(529)

讓我們一起來玩掃雷遊戲!給定乙個代表遊戲板的二維字元矩陣。m 代表乙個未挖出的地雷,e 代表乙個未挖出的空方塊,b 代表沒有相鄰 上,下,左,右,和所有4個對角線 地雷的已挖出的空白方塊,數字 1 到 8 表示有多少地雷與這塊已挖出的方塊相鄰,x 則表示乙個已挖出的地雷。如果乙個地雷 m 被挖出,遊...

小遊戲 掃雷

c語言實現的乙個簡單的掃雷遊戲 介面簡單,功能 首次踩雷的,會換雷。掃雷有九宮格擴撒 環境 vs2015 如下 game.h pragma once ifndef game h define game h define rows 11 define cols 11 define num 9 incl...