岛屿面积问题
import javax.xml.transform.Result;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int n,m;
static int[][] graph;
static int [][] visited;
static int [] dx={1,0,-1,0};
static int [] dy={0,1,0,-1};
static int result;
static int count;
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
n=in.nextInt();
m=in.nextInt();
graph=new int[n][m];
visited=new int[n][m];
for (int i = 0; i <n; i++) {
for (int j=0;j<m;j++){
graph[i][j]=in.nextInt();
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
dfs(i,j);
result= Math.max(result,count);
count=0;
}
}
System.out.println(result);
}
static void dfs(int x,int y){
if(graph[x][y]==0||visited[x][y]==1){
return;
}
visited[x][y]=1;
count++;
for (int i = 0; i <4; i++) {
int nextx=x+dx[i];
int nexty=y+dy[i];
if(nextx<0||nexty<0||nextx>=n||nexty>=m)
{
continue;
}
dfs(nextx,nexty);
}
}
}
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int n,m;
static int[][] graph;
static int [][] visited;
static int [] dx={1,0,-1,0};
static int [] dy={0,1,0,-1};
static int result;
static int count;
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
n=in.nextInt();
m=in.nextInt();
graph=new int[n][m];
visited=new int[n][m];
for (int i = 0; i <n; i++) {
for (int j=0;j<m;j++){
graph[i][j]=in.nextInt();
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
dfs(i,j);
result= Math.max(result,count);
count=0;
}
}
System.out.println(result);
}
static void dfs(int x,int y){
if(graph[x][y]==0||visited[x][y]==1){
return;
}
visited[x][y]=1;
count++;
for (int i = 0; i <4; i++) {
int nextx=x+dx[i];
int nexty=y+dy[i];
if(nextx<0||nexty<0||nextx>=n||nexty>=m)
{
continue;
}
dfs(nextx,nexty);
}
}
}
全部评论
相关推荐
查看10道真题和解析 点赞 评论 收藏
分享
