Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. class Scratch {
  4. private static int visitedSet = 0;
  5. private static int[] visitedArr = new int[16];
  6. private static int[][] mat;
  7.  
  8. public static void main(String[] args) {
  9. mat = getMatrix();
  10. prepareVisitedArr(visitedArr);
  11.  
  12. for (int i = 0; i < mat.length; i++) {
  13. for (int j = 0; j < mat[0].length; j++) {
  14. if (i == 0 || j == 0 || i == mat.length - 1 || j == mat.length - 1) {
  15. if (mat[i][j] == 1) {
  16. visitEntries(i, j);
  17. visitedSet++;
  18. }
  19. }
  20. }
  21. }
  22.  
  23. for (int i = 0; i < mat.length; i++) {
  24. for (int j = 0; j < mat[0].length; j++) {
  25. if (mat[i][j] != -1) {
  26. mat[i][j] = 0;
  27. }
  28. }
  29. }
  30. }
  31.  
  32. private static void visitEntries(int i, int j) {
  33. if (visitedArr[i * mat.length + j] == -1) {
  34. visitedArr[i * mat.length + j] = visitedSet;
  35.  
  36. if (i < mat.length - 1 && mat[i + 1][j] == 1) {
  37. visitEntries(i + 1, j);
  38. }
  39.  
  40. if (j < mat.length - 1 && mat[i][j + 1] == 1) {
  41. visitEntries(i, j + 1);
  42. }
  43.  
  44. if (i > 0 && mat[i - 1][j] == 1) {
  45. visitEntries(i - 1, j);
  46. }
  47.  
  48. if (j > 0 && mat[i][j - 1] == 1) {
  49. visitEntries(i, j - 1);
  50. }
  51. }
  52. }
  53.  
  54. private static void prepareVisitedArr(int[] visitedArr) {
  55. Arrays.fill(visitedArr, -1);
  56. }
  57.  
  58. static int[][] getMatrix() {
  59. return new int[][] {
  60. {0,0,0,0},
  61. {1,0,1,0},
  62. {0,1,1,0},
  63. {0,0,0,0}
  64. };
  65. }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement