Я пытаюсь выяснить эту проблему с помощью CodeFights, но у меня нет большого опыта в обходе графа, поэтому я борюсь. Одним из советов, которые я прочитал для этой конкретной проблемы, был «обход графа», поэтому я сделал BFS, но я не уверен, как получить количество облаков.
По какой-то причине, связанной с этой проблемой и многими другими проблемами, мой разум теряет сознание, когда приходит время писать для нее код. Я подошел к проблеме, пытаясь найти смежные единицы, но безрезультатно. Кто-нибудь может мне помочь?
https://codefights.com/interview/pDTvSuHBgAB9dz5ik/companies/N3sScnJbzdPDQaHPj
Учитывая двумерную карту неба с сеткой, состоящую из единиц (облака) и нулей (чистое небо), подсчитайте количество облаков. Облако окружено ясным небом и образуется путем соединения соседних облаков по горизонтали или вертикали. Можно предположить, что все четыре края карты неба окружены ясным небом.
Пример
skyMap = [['0', '1', '1', '0', '1'],
['0', '1', '1', '1', '1'],
['0', '0', '0', '0', '1'],
['1', '0', '0', '1', '1']]
вывод должен быть countClouds(skyMap) = 2;
skyMap = [['0', '1', '0', '0', '1'],
['1', '1', '0', '0', '0'],
['0', '0', '1', '0', '1'],
['0', '0', '1', '1', '0'],
['1', '0', '1', '1', '0']]
вывод должен быть countClouds(skyMap) = 5.
1
считается облаком. Я ошибаюсь? - person Yahya   schedule 13.06.2017