zoukankan      html  css  js  c++  java
  • leetcode surrounded Regions(Java代码)

    package com.bupt.acm.leetcode;
    
    public class SurroundedRegions {
    
        public void solve(char[][] board){
            boolean up,down,left,right;
            for(int i=1;i<board.length-1;i++){
                for(int j=1;j<board[0].length-1;j++){
                    up=down=left=right=false;
                    if(board[i][j]=='O'){
                        //全是true,表示o可以反转为x
                        up=up(board,i,j);
                        if(!up)
                            continue;
                        down=down(board,i,j);
                        if(!down)
                            continue;
                        left=left(board,i,j);
                        if(!left)
                            continue;
                        right=right(board,i,j);
                        if(!right)
                            continue;
                        board[i][j]='X';
                    }
                }
            }
        }
        //按行up:down
        public boolean up(char[][] board,int row,int col){
            if(board[row-1][col]=='O')
                return false;
            return true;
        }
        public boolean down(char[][] board,int row,int col){
            for(int i=row+1;i<board.length;i++){
                if(board[i][col]=='X')
                    return true;
            }
            return false;
        }
        //按列 left:right
        public boolean left(char[][] board,int row,int col){
            if(board[row][col-1]=='O'){
                return false;
            }
            return true;
        }
        public boolean right(char[][] board,int row,int col){
            for(int i=col+1;i<board[0].length;i++){
                if(board[row][i]=='X')
                    return true;
            }
            return false;
        }
        public static void main(String[] args){
            char[][] board={{'X','X','X'},{'X','O','X'},{'X','X','X'}};
            for(int i=0;i<board.length;i++){
                for(int j=0;j<board.length;j++)
                    System.out.print(board[i][j]+" ");
                System.out.println();
            }
            System.out.println("---------------------");
            SurroundedRegions su=new SurroundedRegions();
            su.solve(board);
            for(int i=0;i<board.length;i++){
                for(int j=0;j<board.length;j++)
                    System.out.print(board[i][j]+" ");
                System.out.println();
            }
        }
    }
  • 相关阅读:
    南阳理工ACM(题目56)
    南阳理工ACM(题目56)
    南阳理工ACM(题目56)
    csuoj1009
    素数槽csuoj
    简单动态规划问题分析
    sort函数使用的基本知识
    2014年7月19日——比赛题取石头问题1
    CODEVS——T 1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛
    洛谷—— P1640 [SCOI2010]连续攻击游戏
  • 原文地址:https://www.cnblogs.com/csxf/p/3648808.html
Copyright © 2011-2022 走看看