LeetCode 130 周圍的區域

Mondo 科學 更新 2024-03-07

給定乙個二維矩陣,包含:'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'。如果兩個元素在水平或垂直方向上相鄰,則稱它們為“連線”。

我們需要把所有被 X 包圍的 O 都變成 X,標題明確指出,邊緣的所有 O 都不能變成 X。

事實上,我們會發現,除了邊緣的 o 和連線到邊緣 o 的 o 之外,我們不需要變成 x,其他一切都需要變成 x。

經過上述反思,問題轉化為乙個相互關聯的區域問題。 在這裡我們需要標記它邊緣的を和與邊緣相連的を。當然,我們可以使用額外的空間來儲存它,但對於這個問題,我們可以完全變異。 這樣,空間複雜度會好一點。

整個過程如圖所示:

我會的邊緣的を和與邊緣相連的を標籤"a"

二維陣列 DFS 解決方案模板轉換問題是連線問題原有陣列直接變異,節省空間的語言支援:js、python3、cpp

* *lc app=leetcode id=130 lang=j**ascript * 130] 包圍區域 * 將 O 和周圍的 O 轉換為函式標記(board, i, j, rows, cols) ** param board * return 不返回任何內容,改為就地修改板。 */var solve = function (board) for (let i = 0; i < rows; i++)else if (board[i][j] === "a") return board;};
python code:

class solution: def solve(self, board: list[list[str]])none: """ do not return anything, modify board in-place instead. """如果數字的長度或寬度小於或等於 2,則無需替換 if len(board) < = 2 或 len(board[0]) = 2: return row, col = len(board), len(board[0]) def dfs(i, j):"""深度優先演算法(如果符合條件)替換為 a 並進一步測試,否則停止""" if i < 0 or j < 0 or i >= row or j >= col or board[i][j] != 'o': return board[i][j] = 'a'DFS(i - 1, j) DFS(i + 1, j) DFS(i, j - 1) DFS(i, j + 1) 從範圍(行)中 i 的外圍開始: dfs(i, 0) dfs(i, col-1) for j in range(col): dfs(0, j) dfs(row-1, j) 最後完成 i in range(row) 的替換: 對於 j in range(col):  如果板[i][j] =='o': board[i][j] = 'x' elif board[i][j] == 'a': board[i][j] = 'o'
cpp code:

class solution , void dfs(vector> &board, int x, int y) public: void solve(vector>& board) for (int j = 0; j < n; +j) for (auto &row : board)
複雜性分析時間複雜度:$o(行 * 列)$Space複雜度:$o(行 * 列)$

相關問題答案

    身高176,體重130的她,被粉絲稱為美臀女王

    東西方在審美上有一定的差異,但這種差異不是很大。例如,前凸在東方和西方都被認為是美麗的,但東方人可能對前凸和後彎的程度更微妙,而西方人則認為它可能更誇張一些。身高公分,體重斤的她,身材修長修長,被粉絲稱為 美臀女王 她的身體比例類似於連環畫,這在現實中是罕見的。起初,她只是在社交平台上分享 很多人表...

    武漢大學被天大背叛了130年?悠久的歷史?對不起,我不同意!

    武漢大學青上校被天大背後捅刀子 年悠久的歷史?對不起,我不同意!今年是武漢大學建校周年,受到校友界的廣泛關注。然而,當雷軍以億的鉅額捐款成為歷史上最慷慨的校友之一時,天津大學並沒有給予武漢大學足夠的認可和支援。在這個重要的時刻,天津大學捅了捅武漢大學的骨幹,讓人感到頗為遺憾和無奈。武漢大學被天大背叛...

    他在春晚“成名”,縫了130針,現在靠賣廁所為生

    王偉曾在 月日山東兄弟回憶錄 一詩中說 作為乙個陌生人,獨自一人在異國他鄉,每個節日都充滿了親人。而在以往的春晚中,有一位才華橫溢的歌手,他用了一首歌唱出了對流浪者的思念之情。他是個歌手 陳少華.又是月日,重陽難聚,想家的人在外面漂流。現在聽起來是這樣歌聲依舊揮之不去。但令人費解的是,如此才華橫溢的...

    武漢大學慶祝被天大背叛130周年對不起,我不這麼認為!

    今年,武漢大學迎來了建校周年,這一訊息引起了廣泛關注。慶典現場,雷軍的慷慨捐贈成為焦點,他以億的金額創下了校友單筆捐款的新紀錄。雷軍的捐贈不僅體現了他大愛的精神,也體現了他對母校的無私奉獻。這樣的舉動無疑給了武漢大學乙個非常溫暖和鼓舞人心的開端。雷軍的慷慨捐贈,不僅是一種捐贈行為,更代表了他對母校的...

    武漢大學青上校被天大刺了130年?悠久的歷史?對不起,我不這麼認為!

    天津大學號稱是中國現代高等教育史上最早的高等學府,成立於年月日,至今已有年的歷史。另一方面,武漢大學則宣傳其建校時間從年的紫強學校算起,今年是該校建校周年。然而,根據年武漢大學學報的報道,成立日期是年,與年相差年。歷史學家和教育界對這一爭議沒有一致認可。因此,無論是周年還是周年,還有待驗證。從官方承...