图论第三天

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

130.被围绕的区域

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

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. 太平洋大西洋水流问题

思路:从两边溯流而上。

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

相关推荐

  1. 2024-06-06 22:50:03       7 阅读
  2. 5

    2024-06-06 22:50:03       8 阅读
  3. 6

    2024-06-06 22:50:03       9 阅读
  4. 9

    2024-06-06 22:50:03       7 阅读
  5. 8

    2024-06-06 22:50:03       5 阅读
  6. 第一

    2024-06-06 22:50:03       9 阅读
  7. 第二

    2024-06-06 22:50:03       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 22:50:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 22:50:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 22:50:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 22:50:03       20 阅读

热门阅读

  1. 这几个大模型产品,你觉得哪个好

    2024-06-06 22:50:03       10 阅读
  2. 神经网络---网络模型的保存、加载

    2024-06-06 22:50:03       9 阅读
  3. 汽车线束搭铁与接地设计原则

    2024-06-06 22:50:03       8 阅读
  4. 双亲委派模型

    2024-06-06 22:50:03       7 阅读
  5. C++构造器设计模式

    2024-06-06 22:50:03       8 阅读
  6. 运维开发详解

    2024-06-06 22:50:03       7 阅读
  7. C++学习笔记

    2024-06-06 22:50:03       7 阅读
  8. 常微分方程 (ODE) 和 随机微分方程 (SDE)

    2024-06-06 22:50:03       12 阅读
  9. 【面试宝藏】Go并发编程面试题

    2024-06-06 22:50:03       6 阅读
  10. Linux学习—Linux环境下的网络设置

    2024-06-06 22:50:03       9 阅读
  11. 【力扣】不同的子序列

    2024-06-06 22:50:03       7 阅读