码迷,mamicode.com
首页 > 其他好文 > 详细

130. Surrounded Regions

时间:2018-10-08 13:59:29      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:第一个   sys   图片   int   二维   div   除了   com   包含   

一、题目

  1、审题

  技术分享图片

  2、分析

    给出一个二维数组,数组中只包含字符 ‘O‘、‘X‘, 将数组中被 ‘X‘ 包围的 ‘O‘ 全部换成 ‘X‘。(其中紧邻边界不算包围)

 

二、解答

  1、思路: 

    方法一、

      ①、将紧挨着棋盘边缘的 "O‘" 或者与边缘的 "O" 连通的 “O” 全部换成 “1“;

      ②、将剩下的 O 全部换成 X,将 “1” 全部换成 “O“;

    public void solve(char[][] board) {
        int rows = board.length;
        if(rows < 3)
            return;
        int cols = board[0].length;
        if(cols < 3)
            return;
        
        for (int row = 0; row < rows; row++) {
            check(board, row, 0, rows, cols); // 第一列的每个元素
            check(board, row, cols - 1, rows, cols); // 最后一列的每个元素
        }
        
        for (int j = 1; j < cols - 1; j++) {
            check(board, 0, j, rows, cols);    // 第一行 (除了第一个、最后一个元素)
            check(board, rows - 1, j, rows, cols);  // 最后一行
        }
        
        for(int i = 0; i < rows; i++) {
            for(int j = 0; j < cols; j++) {
                if(board[i][j] == ‘o‘)
                    board[i][j] = ‘x‘;
                if(board[i][j] == ‘1‘)
                    board[i][j] = ‘o‘;
                
                System.out.print(board[i][j]);
            }
            System.out.println();
        }
    }
    

    void check(char[][] board, int row, int col, int rows, int cols) {
        
        if(board[row][col] == ‘o‘) {
            board[row][col] = ‘1‘;
            if(row > 1)
                check(board, row - 1, col, rows, cols);
            if(col > 1)
                check(board, row, col - 1, rows, cols);
            if(row < rows - 1)
                check(board, row + 1, col, rows, cols);
            if(col < cols - 1)
                check(board, row, col + 1, rows, cols);
        }
    }
    

 

130. Surrounded Regions

标签:第一个   sys   图片   int   二维   div   除了   com   包含   

原文地址:https://www.cnblogs.com/skillking/p/9753813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!