leetcode130:被围绕的区域

该博客探讨了LeetCode第130题的解决方案,通过两种方法——深度优先搜索(DFS)和并查集,来找到并标记被包围的区域。在DFS策略中,从边界开始,将连通的'O'标记为'#',最后将剩余的'O'改为'X'。而在并查集方案中,利用数据结构特性解决相同问题。
摘要由CSDN通过智能技术生成

题目

思路一:dfs

从边界开始搜,将与边界元素‘O’联通的‘O’置为‘#’,递归遍历完之后整个矩阵中只存在'X', 'O', '#'三种元素,此时矩阵中的'O'全部被'X'包围,然后将'O'全部改为'X', 将'#' 全部改为'O'。

class Solution {
    int rows, cols;
    public void solve(char[][] board) {
        if (board == null || board.length == 0) return ;
        rows = board.length; 
        cols = board[0].length;
        for (int i = 0; i < rows; i++) {
            if (board[i][0] == 'O') {
                change(i, 0, board);
            }
            if (board[i][cols-1] == 'O') {
                change(i, cols - 1, board);
            }
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值