图论第三天

似乎要团建了,我再猫会。我必须参与上团建再走。

130.被围绕的区域

先把外围的O变成A,再把飞地的O变成X,再把外围A变回O

cpp 复制代码
class Solution {
public:
    int neighbor[4][2] ={1,0,0,-1,-1,0,0,1};
    void solve(vector<vector<char>>& board) {
        queue<pair<int,int>>que;
        int n = board.size();
        int m = board[0].size();
        for(int i = 0;i < n;i++){
            if(board[i][0] == 'O')bfs(board,que,i,0,'O','A');
            if(board[i][m-1] == 'O')bfs(board,que,i,m-1,'O','A');
        }
        for(int j = 0;j < m;j++){
            if(board[0][j] == 'O')bfs(board,que,0,j,'O','A');
            if(board[n-1][j] == 'O')bfs(board,que,n-1,j,'O','A');
        }
        for(int i = 0;i < n;i++){
            for(int j = 0;j < m;j++){
                if(board[i][j] == 'O')bfs(board,que,i,j,'O','X');
            }
        }
        for(int i = 0;i < n;i++){
            for(int j = 0;j < m;j++){
                if(board[i][j] == 'A')bfs(board,que,i,j,'A','O');
            }
        }
    }
    void bfs(vector<vector<char>>& board,queue<pair<int,int>>que,int x,int y,char X,char Y){
        que.push({x,y});
        board[x][y] = Y;
        while(!que.empty()){
            pair<int,int>cur = que.front();
            que.pop();
            for(int i = 0;i< 4;i++){
                int nextx = cur.first + neighbor[i][0];
                int nexty = cur.second + neighbor[i][1];
                if(nextx < 0 || nexty < 0 || nextx >= board.size() ||nexty >= board[0].size())continue;
                if(board[nextx][nexty] == X){
                    board[nextx][nexty] = Y;
                    que.push({nextx,nexty});
                }
            }

        }
    }
};

417. 太平洋大西洋水流问题

思路:从两边溯流而上。

对不起!!歇一晚上。明天补上。

相关推荐
爪哇学长3 分钟前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
Dola_Pan7 分钟前
C语言:数组转换指针的时机
c语言·开发语言·算法
繁依Fanyi20 分钟前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
烦躁的大鼻嘎36 分钟前
模拟算法实例讲解:从理论到实践的编程之旅
数据结构·c++·算法·leetcode
C++忠实粉丝1 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
用户37791362947551 小时前
【循环神经网络】只会Python,也能让AI写出周杰伦风格的歌词
人工智能·算法
福大大架构师每日一题1 小时前
文心一言 VS 讯飞星火 VS chatgpt (396)-- 算法导论25.2 1题
算法·文心一言
EterNity_TiMe_2 小时前
【论文复现】(CLIP)文本也能和图像配对
python·学习·算法·性能优化·数据分析·clip
机器学习之心2 小时前
一区北方苍鹰算法优化+创新改进Transformer!NGO-Transformer-LSTM多变量回归预测
算法·lstm·transformer·北方苍鹰算法优化·多变量回归预测·ngo-transformer
yyt_cdeyyds2 小时前
FIFO和LRU算法实现操作系统中主存管理
算法