Публикации по теме 'cpp'


LeetCode 104- Максимальная глубина двоичного дерева
Вопрос : Учитывая root бинарного дерева, вернуть его максимальную глубину . Максимальная глубина бинарного дерева — это количество узлов на самом длинном пути от корневого узла до самого дальнего конечного узла. Пример 1: Input: root = [3,9,20,null,null,15,7] Output: 3 Решение: В данной задаче нам нужно найти максимальную глубину бинарного дерева, а значит, нужно найти высоту дерева. Высота дерева — это самый длинный путь от корня дерева до самого..

Серия задач Cracking the Coding Interview Book: Задача 11
Задача 11. Реализуйте алгоритм поиска k-го до последнего элемента односвязного списка. Input: 1->2->3->4->5->6 k = 2 Output: 5 Подход 1: 1. Получить длину связанного списка 2. Добраться до n-го узла, вычитая Listlength - k 3. Перемещайтесь по списку до тех пор, пока значение n не станет равным 0, что будет k-м узлом связанного списка с конца. Временная сложность: O(N) Пробел: O(1) Подход 2: Здесь мы просматриваем список дважды, один раз, чтобы получить..

Дилемма шаблонов проектирования — C++, часть 1
Изучите различные шаблоны проектирования на C++ Вы читаете эту статью, так как вы также находитесь в том же положении, что и все программисты, каждый день занимающиеся кодированием, какой шаблон проектирования лучше для них ? Все, должно быть, слышали о GoF, которые собрались вместе, чтобы наметить различные шаблоны, с которыми они столкнулись, работая над крупномасштабными системами. Эти шаблоны могут быть применены к любому объектно-ориентированному языку. Шаблоны проектирования..

Protocol Buffers, брутальный протокол от Google, против PVS-Studio, статического анализатора кода
Protocol Buffers — очень популярный, крутой и качественный продукт, который в основном разрабатывается Google. Это хороший вызов для статического анализатора кода PVS-Studio. Найти хоть что-то — уже достижение. Давайте попробуем. Пишу о Protocol Buffers (protobuf) в рамках многолетней серии статей о проверке open-source проектов. Библиотека реализует протокол сериализации структурированных данных. Это эффективная бинарная альтернатива текстовому формату XML. Проект показался..

Прекратить использование rand (): случайные числа в C ++ 11
Я уверен, что в какой-то момент мы все использовали rand() для генерации случайных чисел. Если вы используете C, у вас не так много выбора, но если вы используете C ++ 11 (или выше), вы упускаете его. В C ++ 11 добавлен замечательный заголовок <random> , который дает вам новые способы генерации случайных чисел. Сначала это немного сложнее, чем просто позвонить rand() , но оно того стоит. Код легче читать, есть много других вариантов, и вы получите правильное распределение..

Современный C++ в эпоху появления кода: день 14
На четырнадцатый день Advent of Code мы моделируем падающий песок. Я призываю вас сначала попробовать решить ее самостоятельно https://adventofcode.com . Вход Сегодняшние входные данные представляют собой серию сканирований, каждое из которых состоит из ряда координат, представляющих соединенные линии. Мы будем интерпретировать каждое сканирование и рисовать соответствующие линии на нашей карте, которую мы сохраняем как std::vector<std::vector<char>> . Когда мы..

Стандартная библиотека шаблонов C++ (STL): полный обзор
Стандартная библиотека шаблонов (STL) является неотъемлемой частью языка программирования C++. Это набор шаблонных классов и функций, которые предоставляют широкий спектр структур данных и алгоритмов для эффективной и многократно используемой разработки кода. STL состоит из четырех основных компонентов: алгоритмов, контейнеров, функций и итераторов. В этой статье мы подробно рассмотрим каждый из этих компонентов, выделив их особенности и преимущества. Алгоритмы : Алгоритмы STL..