[Leetcode]Number of Island

转载 2015年07月07日 09:55:24

[题目]

Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.

Example 1:

11110
11010
11000
00000

Answer: 1

Example 2:

11000
11000
00100
00011

Answer: 3


[思路]

对于grid里面遇到的“1”,利用DFS,进行搜索深入,只要是相连的,就挖出来变成0,好聪明啊。。。简直了哦。

[代码]

public class Solution {
    private static final int[][] DIRS = new int[][]{{1,0},{-1,0},{0,1},{0,-1}};
    private static final char L = '1', W = '0';

    public void dfsFill(char[][] g, int x, int y) {
        if (x >= 0 && x < g.length && y >= 0 && y < g[0].length && g[x][y] == L) {
            g[x][y] = W;
            for (int[] d : DIRS) dfsFill(g, x + d[0], y + d[1]);
        }
    }

    public int numIslands(char[][] grid) {
        int num = 0;
        for (int i = 0; i < grid.length; i++) {
            for (int j = 0; j < grid[0].length; j++) {
                if (grid[i][j] == L) {
                    num++;
                    dfsFill(grid, i, j);
                }
            }
        }
        return num;
    }
}


相关文章推荐

【LeetCode-面试算法经典-Java实现】【200-Number of Islands(岛的数目)】

【200-Number of Islands(岛的数目)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao...

LeetCode 200. Number of Islands (并查集)

LeetCode 200. Number of Islands (并查集)LeetCode 200 Number of Islands 并查集 问题描述 解题思路 参考代码Tags: * Depth...

第三周:( LeetCode200 ) Number of Islands(c++)

原题:本题是经典的简单图论问题,求岛的个数也即求图上的连通区间的个数。可采用深搜或者广搜。假设共有n个点,时间复杂度为o(n)。本题笔者采用深搜的递归和非递归两种解法。将遍历过的“1”被改为“0”,其...

Letter Combinations of a Phone Number [leetcode]谈谈循环解法的两种思路

本系列博文中有很多两种思路的,其实是因为第一遍刷题的时候有一个想法,第二遍刷题的时候已经忘掉之前的思路了,又有新的想法了。 同时大部分代码我也同时PO到leetcode的对应题目的问答中去了,所以如...

leetcode 17. Letter Combinations of a Phone Number

题意 给定一个数字字符串,枚举各个数字对应的字母组合后的字符串(不重复)。 题解 一个串中字母的重复次数,即后面字母形成串的可能种数。 给定数字”234”,对应串“abc”、“def”、...

LeetCode 200. Number of Islands

DFS遍历即可。

Letter Combinations of a Phone Number - Leetcode

题意:Given a digit string, return all possible letter combinations that the number could represent. ...

leetcode -- Number of Digit One -- 数学题,找规律

https://leetcode.com/problems/number-of-digit-one/参考http://www.cnblogs.com/grandyang/p/4629032.htmlh...
  • xyqzki
  • xyqzki
  • 2015年12月16日 17:11
  • 254

leetcode解题之200. Number of Islands Java版(岛屿的数量)

leetcode解题之200. Number of Islands Java版(岛屿的数量) ,深度优先遍历

[leetcode 18] Letter Combinations of a Phone Number

题目: Given a digit string, return all possible letter combinations that the number could represe...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Leetcode]Number of Island
举报原因:
原因补充:

(最多只允许输入30个字)