首页 > 其他 > 详细

lintcode 443.岛屿的个数

时间:2017-02-03 00:32:59      阅读:357      评论:0      收藏:0      [点我收藏+]

 技术分享

 在v2ex上看到有人提到了这个,感觉挺简单的,没忍住还是试一下....

基本的染色法。

 

AC代码:

public class Solution {
    
    /**
     * @param grid a boolean 2D matrix
     * @return an integer
     */
    public int numIslands(boolean[][] grid) {
        int res=0;
        for(int i=0;i<grid.length;i++){
            for(int j=0;j<grid[i].length;j++){
                if(grid[i][j]){
                    res++;
                    solve(grid,i,j);
                }
            }
        }
        return res;
    }
    
    private void solve(boolean[][] grid,int x,int y){
        if(x<0 || x>=grid.length || y<0 || y>=grid[x].length) return ;
        
        if(!grid[x][y]) return ;
        grid[x][y]=false;
        
        solve(grid,x+1,y);
        solve(grid,x-1,y);
        solve(grid,x,y+1);
        solve(grid,x,y-1);
    }
    
}

 

 

题目来源: http://www.lintcode.com/zh-cn/problem/number-of-islands/

 

  

lintcode 443.岛屿的个数

原文:http://www.cnblogs.com/cc11001100/p/6361867.html

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