zoukankan      html  css  js  c++  java
  • Leetcode 200. Number of Islands

    Leetcode 200. Number of Islands

    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:

    Input:
    11110
    11010
    11000
    00000

    Output: 1
    Example 2:

    Input:
    11000
    11000
    00100
    00011

    Output: 3

    solution

    深度优先搜索,遇到1的时候计数,并把其周围的数字1改为0

    class Solution {
    public:
    	int numIslands(vector<vector<char>>& grid) {
    		if (grid.empty())
    			return 0;
    		int n = grid.size();
    		int m = grid[0].size();
    		int ans = 0;
    		for (int i = 0; i < n; i++)
    			for (int j = 0; j < m; j++)
    			{
    				if (grid[i][j] == '1')
    				{
    					ans++;
    					DFS(grid, i, j, n, m);
    				}
    			}
    		return ans;
    
    	}
    	void DFS(vector<vector<char>>& grid, int i, int j, int n, int m)
    	{
    		if (i < 0 || j < 0 || i >= n || j >= m || grid[i][j] == '0')
    			return;
    		grid[i][j] = '0';
    		DFS(grid, i + 1, j, n, m);
    		DFS(grid, i - 1, j, n, m);
    		DFS(grid, i, j + 1, n, m);
    		DFS(grid, i, j - 1, n, m);
    
    	}
    };
    

    参考链接

    leetcode

    blogs record our growth
  • 相关阅读:
    学习小记: Kaggle Learn
    eclipse 一些快捷键
    Map接口
    学习笔记
    泛型方法 类 接口
    TreeSet
    xml
    Java笔试题目-my
    迭代器三种遍历方法
    线程请求其他线程资源
  • 原文地址:https://www.cnblogs.com/qwfand/p/12722410.html
Copyright © 2011-2022 走看看