給定乙個二維的矩陣,包含 『x』 和 『o』(字母 o)。
找到所有被 『x』 圍繞的區域,並將這些區域裡所有的 『o』 用 『x』 填充。
示例:x x x x
x o o x
x x o x
x o x x
執行你的函式後,矩陣變為:
x x x x
x x x x
x x x x
x o x x
解釋:被圍繞的區間不會存在於邊界上,換句話說,任何邊界上的 『o』 都不會被填充為 『x』。 任何不在邊界上,或不與邊界上的 『o』 相連的 『o』 最終都會被填充為 『x』。如果兩個元素在水平或垂直方向相鄰,則稱它們是「相連」的。
public
class
p130
int m = board.length;
int n = board[0]
.length;
int[
] flag =
newint
[m][n]
;for
(int i=
0;i(flag[i]
[n-1]!=
1&&board[i]
[n-1]==
'o')
}for
(int i=
0;i(flag[m-1]
[i]!=
1&&board[m-1]
[i]==
'o')
}for
(int i =
0;i}}
private
void
mark
(char
board,
int i,
int j,
int[
] flag)
if(j+
1.length&&flag[i]
[j+1]!=
1&&board[i]
[j+1]==
'o')
if(i+
1[j]!=
1&&board[i+1]
[j]==
'o')
if(j-
1>=
0&&flag[i]
[j-1]!=
1&&board[i]
[j-1]==
'o')}}
}
思路:
從邊界上的』o』開始查詢,找到所有與之相連線的』o』
遞迴回溯的找到其他項鍊的』o』,並且標記
所有未被標記的地方均為』x』或者被包圍的』o』
Leetcode習題集 鍊錶
這裡記錄一些我刷題的思路方便之後進行複習重溫,同時也方便進行新增 p141 環形鍊錶 class solution listnode reverse listnode head return pre 使用翻轉鍊錶,判斷返回的指標與傳進的指標是否相同,時間複雜度是o n 可能 空間複雜度是o 1 cl...
leetcode習題集 54 螺旋矩陣
給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11...
leetcode習題集 56 合併區間
給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。public...