leetcode 130被圍繞的區域 回溯演算法
問題描述
對不起,我是fw,看官方解答吧
class Solution {
public:
int n, m;
void dfs(vector<vector<char>>& board, int x, int y) {
if (x < 0 || x >= n || y < 0 || y >= m || board[x][y] != 'O') {
return;
}
board[x][y] = 'A';
dfs(board, x + 1, y);
dfs(board, x - 1, y);
dfs(board, x, y + 1);
dfs(board, x, y - 1);
}
void solve(vector<vector<char>>& board) {
n = board.size();
if (n == 0) {
return;
}
m = board[0].size();
for (int i = 0; i < n; i++) {
dfs(board, i, 0);
dfs(board, i, m - 1);
}
for (int i = 1; i < m - 1; i++) {
dfs(board, 0, i);
dfs(board, n - 1, i);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (board[i][j] == 'A') {
board[i][j] = 'O';
} else if (board[i][j] == 'O') {
board[i][j] = 'X';
}
}
}
}
};
相關文章
- LeetCode-130-被圍繞的區域LeetCode
- LeetCode刷題記112-130. 被圍繞的區域LeetCode
- Python實戰操作:解題之被圍繞的區域Python
- 【LeetCode回溯演算法#08】遞增子序列,鞏固回溯演算法中的去重問題LeetCode演算法
- LeetCode演算法訓練-回溯總結LeetCode演算法
- 「leetcode」78. 子集【回溯演算法】詳解!LeetCode演算法
- canvas 圍繞中心旋轉Canvas
- 回溯演算法演算法
- leetcode.回溯演算法能解決什麼問題?LeetCode演算法
- 回溯演算法 LeetCode 131 分割回文子串演算法LeetCode
- 力扣(LeetCode)130力扣LeetCode
- 演算法-回溯演算法演算法
- 區域性範圍掃描的靈活應用
- 「leetcode」93.復原IP地址【回溯演算法】詳解!LeetCode演算法
- leetcode:全排列(java回溯)LeetCodeJava
- LeetCode130:Surrounded RegionsLeetCode
- [演算法之回溯演算法]演算法
- canvas 圖形圍繞中心旋轉Canvas
- 【LeetCode回溯演算法#07】子集問題I+II,鞏固解題模板並詳解回溯演算法中的去重問題LeetCode演算法
- Golang的值型別和引用型別的範圍、儲存區域、區別Golang型別
- matlab 繪製置信範圍_fill(繪製其區間形成的區域)Matlab
- 產品管理圍繞的五個核心問題
- 圍繞DOM元素節點的增刪改查
- leetcode_question_130 Surrounded RegionsLeetCode
- 區域網內獲取周圍裝置的ip和埠
- LeetCode46 回溯演算法求全排列,這次是真全排列LeetCode演算法
- LeetCode通關:連刷十四題,回溯演算法完全攻略LeetCode演算法
- svg矩形圍繞自身中心旋轉效果SVG
- 常用演算法之回溯法演算法
- LeetCode HOT 100:子集(簡單易懂的回溯)LeetCode
- 百度地圖獲取多行政區域圍欄地圖
- 質數填表問題的回溯演算法演算法
- 每日一題之拉低通過率 回溯演算法 leetcode 51 N皇后每日一題演算法LeetCode
- 圍繞著記憶體資料庫的 4 個流言記憶體資料庫
- Twitter的投資邏輯:一切圍繞流量變現
- leetcode題解(遞迴和回溯法)LeetCode遞迴
- leetcode:組合總和II(回溯java)LeetCodeJava
- 經典演算法之回溯法演算法