非常基礎的一道DFS深度優先搜索的題目,當我們遍歷數組發現一個位置為'1'時,就是用dfs將其周圍的1全部變為0,然後遞歸繼續,這樣所有連通成一片的'1'就是一個island,sum++,最後返回sum即可。類似的題目還有 hdu 1016,hdu 1241。
int dir[4][2]={{-1,0},{1,0},{0,1},{0,-1}}; class Solution { public: void dfs(int i,int j,vector< vector>& grid) { for(int k=0;k<4;k++) { int x=i+dir[k][0]; int y=j+dir[k][1]; if(x>=0&&x =0&&y >& grid) { int sum=0; for(int i=0;i