被X包圍的區域

2021-10-03 21:21:05 字數 1139 閱讀 1270

題目描述

給定乙個二維的矩陣,包含 『x』 和 『o』(字母 o)。

找到所有被 『x』 圍繞的區域,並將這些區域裡所有的 『o』 用 『x』 填充。

輸入

輸入樣例由多組資料組成。第一行輸入兩個正整數n,m表示邊界。(1<=n,m<=100)

接下來輸入nm個』x』和』o』表示矩陣。

輸出

輸出乙個nm的矩陣表示填充後的矩陣。

樣例輸入 copy

4 4x x x x

x o o x

x x o x

x o x x

樣例輸出 copy

x x x x

x x x x

x x x x

x o x x

#include

using

namespace std;

int n, m, flag;

int dir[4]

[2]=

,,,}

;char a[

505]

[505];

int v[

505]

[505];

struct q1nex;

queueq;

void

dfs(

int x,

int y)

if(a[tx]

[ty]

=='o'

&& v[tx]

[ty]==0

)}}int

main()

for(

int i =

0; i < n; i++

) q.

pop();

}}}}

for(

int i =

0; i < n; i++

) cout << endl;}}

return0;

}/*4 5x x x x x

x x o x x

x o x o x

x o x x x

*/

130 被包圍的區域python實現

題目描述 給定乙個二維的矩陣,包含 x 和 o 字母 o 找到所有被 x 圍繞的區域,並將這些區域裡所有的 o 用 x 填充。參考別人的思路,用dfs寫了以下 遇到了一些坑。class solution object defsolve self,board type board list list ...

求多邊形包圍區域

求多邊形包圍區域 已知單元格中,黑色部分為封閉邊緣,如何求出綠色部分也在包圍圈之內?有了上面的概念之後,只需要選定乙個點作為起點並沿邊緣走一圈再回到起點,通過判斷向左側拐和向右拐的次數,若左拐次數大於右拐次數則為左側包圍,反之為右側包圍。在給定的包圍順序下判定了左 右 側包圍,遍可獲得包圍區域 以上...

C 驗證LeetCode包圍區域的DFS方法

在leetcode中的surrounded regions 包圍區域這道題中,我們發現用dfs方法中的最後乙個條件必須是j 1,如下面的紅色字型所示,如果寫成j 0的話無法通過oj,一直百思不得其解其中的原因,直到有告訴我說他驗證了最後乙個大集合在本地機子上可以通過,那麼我也來驗證看看吧。class...