Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class Scratch {
- private static int visitedSet = 0;
- private static int[] visitedArr = new int[16];
- private static int[][] mat;
- public static void main(String[] args) {
- mat = getMatrix();
- prepareVisitedArr(visitedArr);
- for (int i = 0; i < mat.length; i++) {
- for (int j = 0; j < mat[0].length; j++) {
- if (i == 0 || j == 0 || i == mat.length - 1 || j == mat.length - 1) {
- if (mat[i][j] == 1) {
- visitEntries(i, j);
- visitedSet++;
- }
- }
- }
- }
- for (int i = 0; i < mat.length; i++) {
- for (int j = 0; j < mat[0].length; j++) {
- if (mat[i][j] != -1) {
- mat[i][j] = 0;
- }
- }
- }
- }
- private static void visitEntries(int i, int j) {
- if (visitedArr[i * mat.length + j] == -1) {
- visitedArr[i * mat.length + j] = visitedSet;
- if (i < mat.length - 1 && mat[i + 1][j] == 1) {
- visitEntries(i + 1, j);
- }
- if (j < mat.length - 1 && mat[i][j + 1] == 1) {
- visitEntries(i, j + 1);
- }
- if (i > 0 && mat[i - 1][j] == 1) {
- visitEntries(i - 1, j);
- }
- if (j > 0 && mat[i][j - 1] == 1) {
- visitEntries(i, j - 1);
- }
- }
- }
- private static void prepareVisitedArr(int[] visitedArr) {
- Arrays.fill(visitedArr, -1);
- }
- static int[][] getMatrix() {
- return new int[][] {
- {0,0,0,0},
- {1,0,1,0},
- {0,1,1,0},
- {0,0,0,0}
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement