盆地 平原 注水點

2021-09-24 21:12:33 字數 2013 閱讀 9465

給乙個二維的矩陣,包含'x''o', 找到所有被'x'圍繞的區域,並用'x'替換其中所有的'o'

盆地:邊界上的"o"

平原:"x"

注水點:邊界

如果是多源問題,則同時注水

public class solution 

int n = board.length;

int m = board[0].length;

for (int i = 0; i < n; i++)

for (int j = 0; j < m; j++)

for (int i = 0; i < n; i++)

else }}

}private void bfs(char board, int sx, int sy)

int dx = ;

int dy = ;

queueqx = new linkedlist<>();

queueqy = new linkedlist<>();

// 源點進隊

qx.offer(sx);

qy.offer(sy);

board[sx][sy] = 'w'; //water has been here

//拿出隊首元素

先建立模型,找到點和邊

node是所有狀態(eg 0001), 能從某個狀態(0001)變成另乙個狀態(0002),就連一條邊

即每個點最多有8種狀態

死鎖狀態:可以有點指向它,它不能出去任何一條邊

給乙個有向圖,起點是0000,終點是某值,問起點到終點的最短距離是多少。

從0000開始注水

點:每乙個布局   邊:如果乙個布局能夠變動成下乙個布局,則確定一條邊

如何記錄這個狀態:

直接用sting來記  [[2,8,3],[1,0,4],[7,6,5]]  "283104765"

public class solution 

setdeadset = new hashset<>();

for (string str : deadends)

if (deadset.contains(start))

queueq = new linkedlist<>();

setv = new hashset<>(); //已經走過的點

q.offer(start);

v.add(start);

int dist = 0; //第幾次