首页 > 其他 > 详细

dfs-求连通块

时间:2017-03-31 12:50:14      阅读:181      评论:0      收藏:0      [点我收藏+]

状态:若为W则继续搜索

import java.util.Scanner;

public class Main {
    static int n,m;
    static char[][] field;
    
    static void dfs(int row, int col){
        field[row][col] = ‘@‘;
        for(int dx = -1; dx <= 1; dx++){
            for(int dy = -1; dy <= 1; dy++){
                int newRow = row + dx;
                int newCol = col + dy;
                if(newRow >= 0 && newRow < n && newCol >=0 && newCol < m && field[newRow][newCol]==‘W‘){                
                    dfs(newRow,newCol);
                }
            }            
        }    
    
    }
    

    public static void main(String[] args) {
        
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        m = in.nextInt();
        field = new char[n][m];
        
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++)
              field[i][j] = in.next().charAt(0);
        }
            
                
        
        int ans = 0;
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                
                if(field[i][j]==‘W‘){
                    dfs(i,j);
                    ans++;
                }

            }
        }
        
        System.out.println(ans);


    }

}

 

dfs-求连通块

原文:http://www.cnblogs.com/cjshuang/p/6650765.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!