服装AI质检的标准边缘包含哪些?
2026/7/28 0:17:56
岛屿问题的核心是 DFS 遍历二维数组,把连通的 1 标记为已访问。
publicintnumIslands(char[][]grid){intcount=0;for(inti=0;i<grid.length;i++){for(intj=0;j<grid[0].length;j++){if(grid[i][j]=='1'){dfs(grid,i,j);count++;}}}returncount;}privatevoiddfs(char[][]grid,intr,intc){if(r<0||c<0||r>=grid.length||c>=grid[0].length||grid[r][c]!='1')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);}publicintmaxAreaOfIsland(int[][]grid){intmaxArea=0;for(inti=0;i<grid.length;i++){for(intj=0;j<grid[0].length;j++){if(grid[i][j]==1){maxArea=Math.max(maxArea,dfs(grid,i,j));}}}returnmaxArea;}privateintdfs(int[][]grid,intr,intc){if(r<0||c<0||r>=grid.length||c>=grid[0].length||grid[r][c]!=1)return0;grid[r][c]=0;return1+dfs(grid,r-1,c)+dfs(grid,r+1,c)+dfs(grid,r,c-1)+dfs(grid,r,c+1);}publicintislandPerimeter(int[][]grid){for(inti=0;i<grid.length;i++){for(intj=0;j<grid[0].length;j++){if(grid[i][j]==1)returndfs(grid,i,j);}}return0;}privateintdfs(int[][]grid,intr,intc){if(r<0||c<0||r>=grid.length||c>=grid[0].length||grid[r][c]==0)return1;if(grid[r][c]==2)return0;grid[r][c]=2;returndfs(grid,r-1,c)+dfs(grid,r+1,c)+dfs(grid,r,c-1)+dfs(grid,r,c+1);}💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!