Свързани публикации 'cpp'
LeetCode 104- Максимална дълбочина на двоично дърво
„Въпрос“:
Като се има предвид root на двоично дърво, върнете максималната му дълбочина .
Максималната дълбочина на едно двоично дърво е броят на възлите по най-дългия път от основния възел надолу до най-отдалечения листов възел.
Пример 1:
Input: root = [3,9,20,null,null,15,7]
Output: 3
Решение:
В дадената задача трябва да намерим максималната дълбочина на двоичното дърво, което означава, че трябва да намерим височината на дървото.
Височината на дървото е..
Поредица от проблеми на книгата с интервюта за кодиране: Проблем 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. Намирането на поне нещо вече е постижение. Нека да опитаме.
Пиша за Протоколни буфери (protobuf) като част от дългосрочна поредица от статии за проверка на проекти с отворен код. Библиотеката прилага протокол за сериализация на структурирани данни. Това е ефективна двоична алтернатива на 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++ Standard Template Library (STL): Изчерпателен преглед
Библиотеката със стандартни шаблони (STL) е съществена част от езика за програмиране C++. Това е колекция от шаблонни класове и функции, които предоставят широка гама от структури от данни и алгоритми за ефективно и повторно използвано разработване на код. STL се състои от четири основни компонента: алгоритми, контейнери, функции и итератори. В тази статия ще разгледаме подробно всеки един от тези компоненти, като подчертаем техните характеристики и предимства.
Алгоритми : STL..