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...