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

岛屿数量——BFS / DFS对比

时间:2021-01-21 10:54:58      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:isl   amp   ati   queue   i+1   ==   sem   grid   lan   

DFS 解法

class Solution {
    public int numIslands(char[][] grid) {
         int count=0;
         for(int i=0;i<grid.length;i++){
             for(int j=0;j<grid[0].length;j++){
                 if(grid[i][j]==‘1‘){
                    dfs(grid,i,j);
                    count++;
                 }
                 
             }
         }
         return count;
    }
    //DFS深度优先遍历
    public static void dfs(char[][] grid,int i,int j){                   
                if(i>=0&&i<grid.length&&j>=0&&j<grid[0].length&&grid[i][j]==‘1‘)    {
                    grid[i][j]=‘0‘; 
                    dfs(gird,i,j-1); 
                    dfs(grid,i-1,j); 
                    dfs(grid,i+1,j); 
                    dfs(gird,i,j+1);                 
                }                        
        }
    }
}   

 

 

 

BFS 解法

class Solution {
    public int numIslands(char[][] grid) {
         int count=0;
         for(int i=0;i<grid.length;i++){
             for(int j=0;j<grid[0].length;j++){
                 if(grid[i][j]==‘1‘){
                    bfs(grid,i,j);
                    count++;
                 }
                 
             }
         }
         return count;
    }
    //BFS 广度优先遍历
    public static void bfs(char[][] grid,int i,int j){
        Queue<int[]> queue=new LinkedList<>();
        queue.add(new int[]{i,j});
        while(!queue.isEmpty()){
                int[] cur=queue.poll();
                i=cur[0];
                j=cur[1];
                if(i>=0&&i<grid.length&&j>=0&&j<grid[0].length&&grid[i][j]==‘1‘){
                    grid[i][j]=‘0‘; 
                    queue.add(new int[]{i,j-1}); 
                    queue.add(new int[]{i-1,j}); 
                    queue.add(new int[]{i+1,j}); 
                    queue.add(new int[]{i,j+1});                 
                }                        
        }
    }
}

  

 

岛屿数量——BFS / DFS对比

标签:isl   amp   ati   queue   i+1   ==   sem   grid   lan   

原文地址:https://www.cnblogs.com/python924/p/14305581.html

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