Untitled
unknown
plain_text
2 years ago
1.4 kB
17
Indexable
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int r = sc.nextInt(), c = sc.nextInt();
int[][] island = new int[r][c];
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
island[i][j] = sc.nextInt();
}
}
sc.close();
System.out.println(islandPerimeter(island));
}
public static int islandPerimeter(int[][] grid) {
// your code here
if (grid == null) return 0;
for (int i = 0 ; i < grid.length ; i++){
for (int j = 0 ; j < grid[0].length ; j++){
if (grid[i][j] == 1) {
return getPerimeter(grid,i,j);
}
}
}
return 0;
}
public static int getPerimeter(int[][] grid, int i, int j){
if (i < 0 || i >= grid.length || j < 0 || j >= grid[0].length) {return 1;}
if (grid[i][j] == 0) {
return 1;
}
if (grid[i][j] == -1) return 0;
int count = 0;
grid[i][j] = -1;
count += getPerimeter(grid, i-1, j);
count += getPerimeter(grid, i, j-1);
count += getPerimeter(grid, i, j+1);
count += getPerimeter(grid, i+1, j);
return count;
}
}
Editor is loading...