Публикации по теме 'cpp'
Я написал свою собственную библиотеку 2D-графики на C++.
Введение
Создание графики на C++ может быть сложной задачей. Язык C++ не имеет встроенных графических возможностей, поэтому для создания графиков и диаграмм нам приходится использовать внешнюю библиотеку, например OpenGL. Однако использование OpenGL может быть сложным, особенно для новичков или тех, кто просто хочет добавить немного графики в свои проекты, не погружаясь слишком глубоко в детали сложной библиотеки.
Вот почему я создал проект « pom » на GitHub. Цель этого проекта —..
Распространенные шаблоны опечаток в программировании
У разработчиков есть бесконечное количество способов допустить ошибки при написании кода. Однако иногда можно обнаружить очевидные и интересные закономерности в том, как и где разработчики допускают ошибки. Давайте поговорим о коде как о «магните» для опечаток.
История исследования
Для тестирования и продвижения статического анализатора кода PVS-Studio мы проверяем различные проекты с открытым исходным кодом. Если мы находим ошибки, то сообщаем о них авторам проектов. Мы собираем..
Сделать лексикографически наименьший палиндром с минимальными изменениями
Дана строка S. Выведите лексикографически наименьшую возможную строку. Вы можете внести минимальные изменения в символы в строке и переставить строку. Примеры: void makeSmallestPalindrome(string s) {
int n = s.size();
unordered_map<char, int> mp;
int oddnums = 0;
for (auto i: s) mp[i]++;
for (char i = 'a'; i <= 'z'; i++) {
if(mp[i]%2)oddnums++;
}
//update count to make only one odd character exists
if (oddnums > 1) {
for..
LeetCode 226- инвертировать двоичное дерево
Вопрос :
Учитывая root бинарного дерева, инвертировать дерево и вернуть его корень .
Пример 1:
Input: root = [4,2,7,1,3,6,9]
Output: [4,7,2,9,6,3,1]
Решение:
В данной задаче нам нужно инвертировать бинарное дерево.
Инвертирование двоичного дерева просто означает, что мы должны поменять местами левый и правый узлы этого дерева.
Наш первый шаг — проверить, является ли бинарное дерево пустым или нет. Если да, верните null .
if(!root)
return NULL;..
Найдите ближайший элемент в BST
Вопрос:
Учитывая BST и целое число. Найдите наименьшую абсолютную разницу между любым значением узла BST и заданным целым числом.
Пример 1:
Input:
10
/ \
2 11
/ \
1 5
/ \
3 6
\
4
K = 13
Output:
2
Explanation: K=13. The node that has
value nearest to K is 11. so the answer
is 2
Пример 2:
Input:
8
/ \
1 9
\ \
4 10
/
3
K = 9
Output:
0
Explanation: K=9. The node that has..
Посещение «голландского кода» на C++
Дискуссия о Голландском кодексе циркулирует в кругах программистов. На Medium статья Tom Smykowski побудила меня внимательно посмотреть на код. Это привело к реализации его с другим подходом в C++. После первого подхода я упростил код. Оба набора кода приведены ниже.
Споры о голландском кодексе
Самая опасная функция в мире C/C++
Проверив сотни C/C++ проектов разного типа, могу заявить: memset() — самая неэффективная и опасная функция. Большинство ошибок, которые я вижу в проектах, связаны с использованием именно этой функции memset(). Я понимаю, что мой вывод, вероятно, не является ни революционным, ни чрезвычайно полезным, но думаю, нашим читателям было бы интересно узнать, почему я к нему пришел.
Несколько слов обо мне
Меня зовут Андрей Карпов. Я делаю много вещей в своей жизни. Но главное, чем я..