日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode: Surrounded Regions [130]

發布時間:2025/4/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode: Surrounded Regions [130] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【題目】

Given a 2D board containing?'X'?and?'O', capture all regions surrounded by?'X'.

A region is captured by flipping all?'O's into?'X's in that surrounded region.

For example,

X X X X X O O X X X O X X O X X

After running your function, the board should be:

X X X X X X X X X X X X X O X X


【題意】

給定一個二維矩陣,由'X'和'O'填充,本題要求把那些被'X'包圍的'O'替換為'X'。注意這里的包圍是指四周全然包圍。

假設某片'O'區域觸及了矩陣的邊界。則這片區域就不算被'X'包圍。


【思路】

? ? 我們僅僅須要先把觸及到邊界的'O'區域所有替換成還有一個字母, 比方'M'。矩陣中剩下的'O'區域就肯定是被包圍的了。


? ? 然后,我們掃描矩陣把'O'替換成'X', 把'M'替換回'O'就可以
? ??
? ? 區域的遍歷,使用DFS或BFS
? ? DFS要使用遞歸,當矩陣非常大的時候easy超時
? ? 所以本題使用BFS

? ??


【代碼】

class Solution { public:void O2M(vector<vector<char> >&board, int i, int j){//從board[i][j]開始。遍歷'O'區域,把'O'替換成'M'int rows=board.size();int cols=board[0].size();queue<int> qe;qe.push(i*cols+j);board[i][j]='M';while(!qe.empty()){int pos = qe.front(); qe.pop();i=pos/cols;j=pos%cols;//推斷上方if(i-1>=0 && board[i-1][j]=='O'){board[i-1][j]='M'; //注意在將相鄰元素填到隊列中時,須要將它標記為以訪問,否則以后在確定其它節點的'O'相鄰位置時,非常有可能又把這個節點增加到隊列中。造成死循環。qe.push((i-1)*cols + j);}//推斷下方if(i+1<rows && board[i+1][j]=='O'){board[i+1][j]='M';qe.push((i+1)*cols + j);}//推斷左方if(j-1>=0 && board[i][j-1]=='O'){board[i][j-1]='M';qe.push(i*cols + j-1);}//推斷右方if(j+1<cols && board[i][j+1]=='O'){board[i][j+1]='M';qe.push(i*cols + j+1);}}}void solve(vector<vector<char>> &board) {int rows=board.size();if(rows==0)return;int cols=board[0].size();if(cols==0)return;//把臨邊的'O'區域替換成'M'//上邊for(int j=0; j<cols; j++){if(board[0][j]=='O')O2M(board, 0, j);}//下邊for(int j=0; j<cols; j++){if(board[rows-1][j]=='O')O2M(board, rows-1, j);}//左邊for(int i=0; i<rows; i++){if(board[i][0]=='O')O2M(board, i, 0);}//右邊for(int i=0; i<rows; i++){if(board[i][cols-1]=='O')O2M(board, i, cols-1);}//掃描矩陣。把O替換成X, 把M替換成Ofor(int i=0; i<rows; i++){for(int j=0; j<cols; j++){if(board[i][j]=='O')board[i][j]='X';else if(board[i][j]=='M')board[i][j]='O';}}} };

總結

以上是生活随笔為你收集整理的LeetCode: Surrounded Regions [130]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆国产av超爽剧情系列 | 日韩欧美国产一区二区在线观看 | 一区二区三区在线播放视频 | 日韩 在线| 国产91在线观看丝袜 | 精品久久一区二区三区 | 五月婷婷在线观看视频 | 懂色av蜜臀av粉嫩av喷吹 | 91爱看| 日韩一区二区三区三四区视频在线观看 | 日韩欧av | 高清乱码毛片入口 | 免费观看在线观看 | 台湾色综合 | 寂寞人妻瑜伽被教练日 | 性高潮久久久久 | 国产三级全黄 | 日韩精品一二三区 | 亚洲欧美综合一区二区 | 中国大陆高清aⅴ毛片 | 国产精品久久久91 | av男人的天堂在线观看 | 肮脏的交易在线观看 | 精彩毛片 | 日本少妇一区二区 | 日韩不卡一区 | 五月激情小说 | 看国产一级片 | 欧美日韩不卡一区二区 | 成年人黄色免费视频 | 天堂va蜜桃一区 | 成人福利视频导航 | 五月婷婷国产 | 久草五月天 | se94se欧美 | 肉体粗喘娇吟国产91 | 男插女青青影院 | 香港一级淫片免费放 | 91肉色超薄丝袜脚交一区二区 | 亚洲欧洲日韩国产 | 激情五月婷婷在线 | 在线操| 国产视频综合 | 久久伊人网站 | 好大好爽视频 | 久久人人视频 | 亚洲综合网av | 正在播放亚洲 | 亚洲成人黄色片 | 欧美性猛交xxxx黑人猛交 | 日本一级黄色大片 | 中国在线观看片免费 | 天天毛片| 天天干天天舔天天操 | 毛片网在线 | 综合国产精品 | 玖玖视频在线 | 婷婷丁香六月 | 黄色成人一级片 | 美国黄色一级大片 | 一区二区三区视频网站 | 九色91av| 亚洲美女av在线 | 亚洲欧美一区二区视频 | 视频国产精品 | 色偷偷伊人 | 99在线精品视频 | 天堂欧美城网站网址 | 国产男女精品 | 午夜在线观看av | 精品一区二区三区视频在线观看 | 都市激情校园春色 | 国产清纯白嫩初高中在线观看性色 | 欧美猛交xxx | 四虎影院在线视频 | 91免费污视频 | 亚洲高清福利 | 中文字幕一区二区人妻在线不卡 | 日韩八区 | 五月婷婷亚洲 | 国产精品99久久久久久久 | 国产电影一区二区三区爱妃记 | 鬼眼 电影| 尤物在线视频观看 | 91视频三区| 疯狂揉花蒂控制高潮h | 一级美女大片 | 一级黄色免费看 | 日韩精品电影网 | 精品无码成人久久久久久免费 | 国产精品3区| 小宵虎南在线观看 | 欧美精品在线观看一区二区 | 在线观看三级视频 | 麻豆精品国产传媒mv男同 | 午夜极品视频 | 欧美日日操 | 精品一二三四 | 日本啪啪片 |