Метка: beginner
-
LeetCode #1: Two Sum
Классическая задача для начала пути в спортивном программировании. Условие Дан массив целых чисел nums и число target. Найдите два индекса, сумма элементов на которых равна target. Решение на C++ Решение на Python Сложность Время: O(n) — один проход по массиву Память: O(n) — хэш-таблица для хранения элементов Альтернатива: можно отсортировать массив и использовать два указателя…
-
Связные списки на C++
Что такое связный список? Связный список — это линейная структура данных, где каждый элемент (узел) содержит данные и указатель на следующий узел. В отличие от массива, элементы не хранятся в непрерывной памяти. Пример кода на C++ Преимущества и недостатки Плюсы: динамический размер, быстрая вставка/удаление в начале Минусы: нет прямого доступа к элементу по индексу, лишняя…
-
BFS и DFS: обход графов
Что такое обход графов? Обход графа — это процесс посещения всех вершин графа. Существует два основных метода: BFS (поиск в ширину) и DFS (поиск в глубину). BFS (Breadth-First Search) — поиск в ширину BFS исследует все вершины на текущем уровне, прежде чем перейти к следующему. Использует очередь (queue). Пример кода BFS на C++ DFS (Depth-First…
-
Bubble Sort: от простого к эффективному
Что такое сортировка пузырьком? Сортировка пузырьком (Bubble Sort) — один из самых простых алгоритмов сортировки. Он работает по принципу «пузырьков», которые медленно поднимаются на поверхность. Алгоритм последовательно сравнивает соседние элементы массива и меняет их местами, если они стоят в неправильном порядке. Пример кода на C++ Сложность Худший случай: O(n²) — массив отсортирован в обратном порядке…