Уявіть двовимірний масив булевих значень, де 0 являють собою квадрати трави на прямокутній ділянці землі, а 1s - огорожі.
Напишіть функцію, яка приймає 2D масив як вхідний і визначає, чи можете ви переходити з будь-якої однієї області трави до будь-якої іншої ділянки трави, використовуючи лише рухи північ / схід / захід / південь, не бігаючи в огорожу.
Якщо будь-яка ділянка трави в масиві повністю закрита огорожами (це означає, що ви не можете подорожувати N / E / W / S, щоб дістатися до будь-якої іншої ділянки трави в масиві), функція повинна повертати помилкове значення; інакше вона повинна повернути справжню.
Нижче наведено два зразкових масиви, які можна використовувати як вхідні дані, хоча ваша функція повинна вміти обробляти не лише ці, а й будь-який 2D масив булевих значень:
0 0 0 0 0
0 1 0 0 0
0 1 1 1 1
0 0 0 0 0
0 0 0 1 1
(should return true)
0 1 0 1 0
0 1 1 0 0
0 0 0 0 0
0 0 0 1 0
1 1 1 1 0
(should return false, since the middle 0 in the top row is fully enclosed)
Виграє найкоротший робочий код. Я виберу переможця після того, як пройшов тиждень або не було нових заявок протягом 24 годин.
1 1 1; 1 0 1; 1 1 1? У центрі є одна трав’яна клітина. Візуально клітина трави в центрі повністю огороджена огорожами, але за вашим визначенням це не так.