在由 1 x 1 方格組成的 n x n 網格 grid 中,每個 1 x 1 方塊由 /、\ 或空格構成。這些字元會將方塊劃分為一些共邊的區域。
(請注意,反斜槓字元是轉義的,因此 \ 用 「\」 表示。)。
返回區域的數目。
示例 1:
輸入:[
" /",
"/ "
]輸出:2
解釋:2x2 網格如下:
示例 2:
輸入:[
" /",
" "]
輸出:1
解釋:2x2 網格如下:
示例 3:
輸入:[
「\/」,
「/\」
]輸出:4
解釋:(回想一下,因為 \ 字元是轉義的,所以 「\/」 表示 /,而 「/\」 表示 /\。)
2x2 網格如下:
示例 4:
輸入:[
「/\」,
「\/」
]輸出:5
解釋:(回想一下,因為 \ 字元是轉義的,所以 「/\」 表示 /\,而 「\/」 表示 /。)
2x2 網格如下:
示例 5:
輸入:[
「//」,
"/ "
]輸出:3
解釋:2x2 網格如下:
grid[i][j] 是 '/'、'\'、或 ' '。
思路:
1.區域連線求數量的問題用並查集解決
2.大方塊由n * n的個小方塊組成,將小方塊按照雙線劃分順時針分為0,1,2,3 共4個區域
3.當『/』時,小方塊的 0,3 區域連線, 1,2區域連線
當『\』時 ,小方塊的 0,1區域連線,2,3區域連線
當『 』時,小方塊4個區域連線
4.當然小方塊和小方塊之間也是相連的。
//合併周邊區域 (上下左右)
if(i -
1>=0)
if(i +
1< n)
if(j -
1>=0)
if(j +
1< n)}}
//有多少個根節點等於它自身,就有多少個區域
int ans =0;
for(
int i =
0; i < merge.parent.length; i++)}
return ans;
}class
merge
}public
intfind
(int x)
return parent[x];}
public
void
union
(int x,
int y)
}}
leetcode 由斜槓劃分區域
在由 1 x 1 方格組成的 n x n 網格 grid 中,每個 1 x 1 方塊由 或空格構成。這些字元會將方塊劃分為一些共邊的區域。請注意,反斜槓字元是轉義的,因此 用 表示。返回區域的數目。示例 1 輸入 輸出 2 解釋 2x2 網格如下 示例 2 輸入 輸出 1 解釋 2x2 網格如下 示...
leetcode 959 由斜槓劃分區域
目錄 一 題目內容 二 解題思路 三 在由 1 x 1 方格組成的 n x n 網格 grid 中,每個 1 x 1 方塊由 或空格構成。這些字元會將方塊劃分為一些共邊的區域。請注意,反斜槓字元是轉義的,因此 用 表示。返回區域的數目。示例 1 輸入 輸出 2 解釋 2x2 網格如下 示例 2 輸入...
LeetCode 959 由斜槓劃分區域
難度 中等。這個題,我不會,看別人的思路。參考 然後問題同 200.島嶼數量,遍歷0的區域。我的實現 class solution void change map int i,int j,int n public int regionsbyslashes vector grid else if gr...