news 2026/5/1 11:20:43

【剑斩OFFER】算法的暴力美学——力扣 130 题:被围绕的区域

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩OFFER】算法的暴力美学——力扣 130 题:被围绕的区域

一、题目描述

二、算法原理

1)处理边缘 'O',防止干扰微软 'O' :

2)使用层序遍历查找中间的使用的 'O' 并且让他变成 '1':

https://blog.csdn.net/2403_84958571/article/details/157102889?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

3)在查找围绕'0',之后最后再把 '1' 变成 ‘O’

三、代码实现

class Solution { int dx[4] = {0,0,1,-1}; int dy[4] = {1,-1,0,0}; typedef pair<int,int> PII; public: void solve(vector<vector<char>>& board) { for(int i = 0; i < board.size();i++)//处理 第 1 行 和 最后 1 行的边界情况,边界 'O' = '1',防止干扰围绕的 'O' { if(i == 0 || i == board.size() - 1) { for(int k = 0; k <board[0].size(); k++) { if(board[i][k] == 'O') { board[i][k] = '1'; become(board,i,k); } } } } for(int i = 1; i < board.size() - 1; i++)//处理中间行的边界情况,边界 'O' = '1' { for(int k = 0; k < board[0].size();k++) { if(k == 0 || k == board[0].size() - 1) { if(board[i][k] == 'O') { board[i][k] = '1'; become(board,i,k); } } } } for(int i = 0; i < board.size(); i++)//查找中间 'O' { for(int k = 0; k < board[0].size(); k++) { if(board[i][k] == 'O') { board[i][k] = 'X'; CheckBoard(board,i,k); } if(board[i][k] == '1')//还原 '1' = 'O' { board[i][k] = 'O'; } } } } void CheckBoard(vector<vector<char>>& board,int i,int k) { queue<PII> que; que.push({i,k}); while(que.size()) { auto [x,y] = que.front(); que.pop(); for(int a = 0; a < 4; a++) { int new_x = x + dx[a]; int new_y = y + dy[a]; if(new_x >= 0 && new_x < board.size() && new_y >= 0 && new_y < board[0].size() && board[new_x][new_y] == 'O') { board[new_x][new_y] = 'X'; que.push({new_x,new_y}); } } } } void become(vector<vector<char>>& board,int i,int k) { queue<PII> que; que.push({i,k}); while(que.size()) { auto [x,y] = que.front(); que.pop(); for(int a = 0; a < 4; a++) { int new_x = x + dx[a]; int new_y = y + dy[a]; if(new_x >= 0 && new_x < board.size() && new_y >= 0 && new_y < board[0].size() && board[new_x][new_y] == 'O') { board[new_x][new_y] = '1'; que.push({new_x,new_y}); } } } } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:35:57

X平台服务中断一小时后仍存在功能问题

X平台服务中断持续影响用户体验周五上午发生的服务中断似乎仍在影响这个前身为Twitter的社交媒体平台。当天上午&#xff0c;全球用户发现X平台和Grok服务无法正常访问&#xff0c;无论是网站还是移动应用都出现了故障。根据DownDetector的数据显示&#xff0c;故障报告在美国东…

作者头像 李华
网站建设 2026/5/1 4:44:06

闲置 N1 盒子别扔!OpenList 聚合网盘,搭配 cpolar 随时随地看 4K 资源

OpenList 作为一款开源免费的网盘聚合工具&#xff0c;核心功能是整合阿里云盘、夸克、百度云等数十种存储服务&#xff0c;通过统一的网页界面实现文件的查找、播放与下载&#xff0c;还支持 302 重定向技术&#xff0c;播放视频时直连网盘高速链接&#xff0c;避免带宽卡顿。…

作者头像 李华
网站建设 2026/4/25 19:55:38

告别嘈杂!Moodist%20白噪音神器,搭配%20cpolar%20解锁随时随地的宁静

Moodist 作为一款沉浸式环境音效生成器&#xff0c;核心功能是将雨打屋檐、篝火噼啪、山间溪流等数十种自然与生活音效拆分为独立模块&#xff0c;用户可自由调配比例&#xff0c;打造专属治愈音效&#xff0c;适配职场人、学生党、宝妈等各类需要舒缓环境的人群&#xff0c;其…

作者头像 李华
网站建设 2026/4/30 11:49:50

电动汽车与燃油车仿真模型大揭秘

纯电动汽车BEV 电机 电池 VCU控制仿真模型纯电动汽车整车仿真测试; 附赠传统燃油车 仿真模型 发动机 传动系 车辆模型 . 模型均有直观的模型搭建说明描述&#xff01;嘿&#xff0c;各位技术宅们&#xff01;今天咱来唠唠超酷的纯电动汽车&#xff08;BEV&#xff09;和传统燃…

作者头像 李华