Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.33 KB | None | 0 0
  1. package com.javarush.task.task20.task2026;
  2.  
  3. /*
  4. Алгоритмы-прямоугольники
  5.  
  6. Алгоритмы-прямоугольники
  7.  
  8. 1. Дан двумерный массив N*N, который содержит несколько прямоугольников.
  9.  
  10. 2. Различные прямоугольники не соприкасаются и не накладываются.
  11.  
  12. 3. Внутри прямоугольник весь заполнен 1.
  13.  
  14. 4. В массиве:
  15.  
  16. 4.1) a[i, j] = 1, если элемент (i, j) принадлежит какому-либо прямоугольнику
  17.  
  18. 4.2) a[i, j] = 0, в противном случае
  19.  
  20. 5. getRectangleCount должен возвращать количество прямоугольников.
  21.  
  22. 6. Метод main не участвует в тестировании
  23.  
  24.  
  25.  
  26.  
  27.  
  28. Требования:
  29.  
  30. 1. В классе Solution должен существовать метод getRectangleCount с одним параметром типа byte[][].
  31.  
  32. 2. Метод getRectangleCount должен быть публичным.
  33.  
  34. 3. Метод getRectangleCount должен быть статическим.
  35.  
  36. 4. Метод getRectangleCount должен возвращать количество прямоугольников (в соответствии с заданием) найденное в полученном массиве.
  37.  
  38. // Всем привет 17.10.2017
  39. */
  40. public class Solution {
  41.     public static void main(String[] args) {
  42.         byte[][] a = new byte[][]{
  43.                 {1, 0, 1, 0},
  44.                 {0, 1, 0, 1},
  45.                 {1, 0, 1, 0},
  46.                 {0, 1, 0, 1}
  47.         };
  48.         int count = getRectangleCount(a);
  49.         System.out.println("count = " + count + ". Должно быть 2");
  50.     }
  51.  
  52.     public static int getRectangleCount(byte[][] a) {
  53.  
  54.         int count = 0; // кол-во прямоугольников
  55.         for (int i=0;i<a.length;i++){
  56.             for (int j=0; j<a.length;j++)
  57.             {
  58.                 if (a[i][j]==1) {
  59.                     //смотрим ячейку сверху и слева
  60.                     if ((((i-1)<0)|| (a[i-1][j]==0)) && (((j-1)<0)||(a[i][j-1]==0)))count++;
  61.                 }
  62.             }
  63.         }
  64.  
  65.         return count;
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement