Публикации по теме '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..