岛屿的个数number-of-islands
生活随笔
收集整理的這篇文章主要介紹了
岛屿的个数number-of-islands
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給一個01矩陣,求不同的島嶼的個數。
0代表海,1代表島,如果兩個1相鄰,那么這兩個1屬于同一個島。我們只考慮上下左右為相鄰。
樣例
在矩陣:
[[1, 1, 0, 0, 0],[0, 1, 0, 0, 1],[0, 0, 0, 1, 1],[0, 0, 0, 0, 0],[0, 0, 0, 0, 1] ]中有?3?個島.
解題思路:對于這種圖論的題來說,(づ。????。)づ寶寶真的是不會,所以我百度學習了一下。不看不知道,一看還是挺簡單的,最簡單的DFS
1 public class Solution { 2 /** 3 * @param grid a boolean 2D matrix 4 * @return an integer 5 */ 6 public void dfs(boolean[][] grid, int x , int y){ 7 if(x<0||x>grid.length-1){ 8 return; 9 } 10 if(y<0||y>grid[0].length-1){ 11 return; 12 } 13 if(!grid[x][y]){ 14 return; 15 } 16 grid[x][y]=false; 17 dfs(grid,x+1,y); 18 dfs(grid,x-1,y); 19 dfs(grid,x,y+1); 20 dfs(grid,x,y-1); 21 } 22 public int numIslands(boolean[][] grid) { 23 // Write your code here 24 if(grid.length ==0 || grid[0].length==0 || grid == null ) return 0; 25 int n=grid.length; 26 int m=grid[0].length; 27 int count=0; 28 for(int i=0;i<n;i++){ 29 for(int j=0;j<m;j++){ 30 if(grid[i][j]){ 31 dfs(grid,i,j); 32 count++; 33 } 34 } 35 } 36 return count; 37 } 38 }?
轉載于:https://www.cnblogs.com/wangnanabuaa/p/5011621.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的岛屿的个数number-of-islands的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt学习(2)
- 下一篇: Error -26612: HTTP S