Untitled
unknown
plain_text
a year ago
1.4 kB
4
Indexable
Never
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; } }