Найти в Дзене
Структуры-Алгоритмы-Ханойская башня-Рекурсия
Дано: в задаче «Ханойская башня» нужно переместить стопку дисков с одного колышка на другой, следуя следующим правилам: 1) Одновременно можно перемещать только один диск. 2) Диск можно положить только на больший диск или на пустой колышек. 3) Все диски начинаются на одной колышке и должны быть перемещены на другую колышку с помощью промежуточной колышки. Решение будет производится с помощью рекурсии, а точнее вызова 2 рекурсивных функций за один шаг. Первый шаг. Назовём нашу функцию HanoiTower,...
1 год назад
Структуры-Алгоритмы BFS
«Обход в ширину» или «Поиск в ширину» (Breadth first traversal or Breadth first Search) - это рекурсивный алгоритм поиска всех вершин графа или древовидной структуры данных. Для простоты предполагается, что все вершины достижимы из начальной вершины. BFS использует для обхода структуру данных: очередь (queue) Стандартная реализация ВFS помещает каждую вершину графа в одну из двух категорий: Цель алгоритма - пометить каждую вершину, как посещенную, избегая циклов. Алгоритм работает следующим образом: Давайте посмотрим, как алгоритм «поиска в ширину» работает на примере...
1 год назад
Алгоритмы LeetCode 200. Number of Islands - Top 75 Questions BFS DFS Python
Дано: Задан двумерный двоичный массив m x n, представляющий собой карту из «1» (земля) и «0» (вода), нужно найти количество островов на карте. Примечание: Остров окружен водой и образуется путем соединения соседних земель по горизонтали или вертикали. Предполагаются, что все четыре края карты окружены водой. Пример 1: Вход: grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"] ] Выход: 1 Пример 2: Вход: grid = [ ["1","1","0","0","0"], ...
1 год назад
LeetCode - Алгоритмы - Python - 231. Power of Two
Дано: целое число n, верните true, если оно является степенью двойки. В противном случае возвращается false. Пример 1: Дано: n = 1 Выход: true Пример 2: Дано: n = 16 Выход: true Пример 3: Дано: n = 3 Выход: false Ограничения: -2^31 <= n <= 2^31 - 1 Решения: 1) Наивный подход class Solution: def isPowerOfTwo(self, n: int) -> bool: if n <= 0: return False if n == 1: return True while (n % 2 == 0): n /= 2 return n == 1 Отсекаем...
1 год назад
Алгоритмы - LeetCode - Python - Dayli - 2149. Rearrange Array Elements by Sign
Дано: массив целых чисел nums четной длины, состоящий из равного количества положительных и отрицательных целых чисел. Необходимо переставить элементы nums таким образом, чтобы измененный массив соответствовал заданным условиям: - Каждое следующее число имеет противоположный знак. - Для всех целых чисел с одинаковым знаком сохраняется порядок, в котором они находились в nums. - Переупорядоченный массив начинается с положительного целого числа. Пример 1: Дано: nums = [3,1,-2,-5,2,-4] Ответ: [3,-2,1,-5,2,-4] Пример 2: Дано: nums = [-1,1] Ответ: [1,-1] Ограничения: 2 <= nums...
1 год назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала