leetcode200. 岛屿数量
生活随笔
收集整理的這篇文章主要介紹了
leetcode200. 岛屿数量
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)由?'1'(陸地)和 '0'(水)組成的的二維網(wǎng)格,計(jì)算島嶼的數(shù)量。一個(gè)島被水包圍,并且它是通過水平方向或垂直方向上相鄰的陸地連接而成的。你可以假設(shè)網(wǎng)格的四個(gè)邊均被水包圍。
示例 1:
輸入:
11110
11010
11000
00000
輸出:?1
示例?2:
輸入:
11000
11000
00100
00011
輸出: 3
思路:深搜入門題。
對所有位置進(jìn)行dfs:
dfs:對于能達(dá)到的‘1’,全部賦值為‘0’
class Solution {void dfs(char[][] grid, int r, int c) {int nr = grid.length;int nc = grid[0].length;if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') {return;}grid[r][c] = '0';dfs(grid, r - 1, c);dfs(grid, r + 1, c);dfs(grid, r, c - 1);dfs(grid, r, c + 1);}public int numIslands(char[][] grid) {if (grid == null || grid.length == 0) {return 0;}int nr = grid.length;int nc = grid[0].length;int ans = 0;for (int r = 0; r < nr; ++r) {for (int c = 0; c < nc; ++c) {if (grid[r][c] == '1') {++ans;dfs(grid, r, c);}}}return ans;} }?
總結(jié)
以上是生活随笔為你收集整理的leetcode200. 岛屿数量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 江苏银行美团信用卡怎么激活?和申卡渠道有
- 下一篇: 江苏银行美团信用卡可以取现吗?这些事项需