⚙️ Search in a Binary Search Tree
В задаче требуется реализовать поиск по бинарному дереву
Подход к решению
- Реализуется с помощью рекурсивного алгоритма
- Сначала обходим левое поддерево, а затем правое
#tasks #middle
Решение
class Solution {
public:
TreeNode* searchBST(TreeNode* root, int val) {
if (!root)
return nullptr;
if (root->val == val)
return root;
if (val < root->val)
return searchBST(root->left, val);
else
return searchBST(root->right, val);
}
};
В задаче требуется реализовать поиск по бинарному дереву
Подход к решению
- Реализуется с помощью рекурсивного алгоритма
- Сначала обходим левое поддерево, а затем правое
#tasks #middle
Решение
🧨 Что выведется при выполнении программы??
Anonymous Quiz
22%
-127
4%
128
16%
127
56%
Ошибка компиляции
3%
125
🧿 Задача Простая пара
Дан массив целых чисел arr и целое число n. Найдите из данного массива пару чисел [x, y] такую, что x * y = n. Если пара не найдена, вернуть [0, 0]
👉A Simple Pair (edabit)
#middle #tasks
Решение
std::pair simplePair(std::vector arr, int n) {
for (int i = 0; i < arr.size()-1; ++i) {
for (int j = i+1; j < arr.size(); ++j) {
if (arr[i] * arr[j] == n) {
return std::make_pair(arr[i], arr[j]);
}
}
}
return std::make_pair( 0, 0 );
}
Дан массив целых чисел arr и целое число n. Найдите из данного массива пару чисел [x, y] такую, что x * y = n. Если пара не найдена, вернуть [0, 0]
👉A Simple Pair (edabit)
#middle #tasks
Решение
⚙️ Задача Even or Odd: Which is Greater?
Создайте функцию, определяющую, больше ли сумма всех чётных цифр, чем сумма всех нечетных цифр в строке цифр
Если сумма нечетных цифр больше суммы четных, верните «Odd is greater than Even»
Если сумма четных цифр больше суммы нечетных, верните «Even is greater than Odd»
Если сумма четных и нечетных цифр равна, верните «Even and Odd are the same»
👉Even or Odd: Which is Greater?
#junior
❗️Решение
std::string evenOrOdd(std::string str) {
int sumOdd = 0;
int sumEven= 0;
for (auto ch : str) {
int num = ch - '0';
if (num % 2 == 0) {
sumEven += num;
}
else {
sumOdd += num;
}
}
if (sumOdd == sumEven) {
return "Even and Odd are the same";
}
else if (sumOdd > sumEven) {
return "Odd is greater than Even";
}
else {
return "Even is greater than Odd";
}
}wbah
Создайте функцию, определяющую, больше ли сумма всех чётных цифр, чем сумма всех нечетных цифр в строке цифр
Если сумма нечетных цифр больше суммы четных, верните «Odd is greater than Even»
Если сумма четных цифр больше суммы нечетных, верните «Even is greater than Odd»
Если сумма четных и нечетных цифр равна, верните «Even and Odd are the same»
👉Even or Odd: Which is Greater?
#junior
❗️Решение
int sumOdd = 0;
int sumEven= 0;
for (auto ch : str) {
int num = ch - '0';
if (num % 2 == 0) {
sumEven += num;
}
else {
sumOdd += num;
}
}
if (sumOdd == sumEven) {
return "Even and Odd are the same";
}
else if (sumOdd > sumEven) {
return "Odd is greater than Even";
}
else {
return "Even is greater than Odd";
}
}wbah
🔮 С помощью какого методов можно приостановить текущий поток?
Anonymous Quiz
41%
std::thread::sleep
11%
std::thread::terminate
30%
std::this_thread::sleep_for
17%
std::thread::stop
⚙️ Задача How Many Numbers Are Smaller Than the Current Number
Для каждого элемента массива посчитать количество элементов меньше и вывести результат в виде массива
Пример
Input: nums = [8,1,2,2,3]
Output: [4,0,1,1,3]
Ограничения
- Значение элемента лежит между значениями 0 и 100
- Длина самого массива не меньше 2-х и не больше 500-а
👉How Many Numbers Are Smaller Than the Current Number (leetcode)
#tasks #middle
Решение
class Solution {
public:
vector smallerNumbersThanCurrent(vector& nums) {
vector ans;
vector nums_count(101);
for (const int num : nums){
++nums_count[num];
}
for (int i = 1; i <= 100; ++i) {
nums_count[i] += nums_count[i — 1];
}
for (const int num : nums) {
ans.push_back(num == 0 ? 0 : nums_count[num — 1]);
}
return ans;
}
};
Для каждого элемента массива посчитать количество элементов меньше и вывести результат в виде массива
Пример
Input: nums = [8,1,2,2,3]
Output: [4,0,1,1,3]
Ограничения
- Значение элемента лежит между значениями 0 и 100
- Длина самого массива не меньше 2-х и не больше 500-а
👉How Many Numbers Are Smaller Than the Current Number (leetcode)
#tasks #middle
Решение
Какая тематика канала наиболее интересна?
Anonymous Poll
34%
Задачи (leetcode, edabit, ...)
27%
Вопросы с решениями
39%
Глубокий разбор подходов к решению задач
0%
Другое (напиши в комментариях)
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Что будет если вызвать delete на nullptr?
Anonymous Quiz
10%
Не скомпилируется
49%
Ничего не произойдёт
17%
Ошибка во время выполнения
24%
Неопределённое поведение (UB)
⏰ Задача Minimum Number of Operations to Move All Balls to Each Box (leetcode)
Во входных данных даётся массив, каждый элемент массива это коробка. В коробке может быть шарик. Необходимо посчитать сколько нужно действий чтобы переложить все шарики в одну коробку (минимальное количество), для каждой коробки
Пример 1
Input: boxes = «110»
Output: [1,1,3]
Пример 2
Input: boxes = «001011»
Output: [11,8,5,4,3,4]
👉 Ссылка
#tasks #middle
Решение (brute force)
class Solution {
public:
std::vector minOperations(std::string boxes) {
std::vector result;
for (int i = 0; i < boxes.length(); ++i) {
int count = 0;
for (int j = 0; j < boxes.length(); ++j) {
if (boxes[j] == '1') {
count += std::abs(i — j);
}
}
result.push_back(count);
}
return result;
}
};
Во входных данных даётся массив, каждый элемент массива это коробка. В коробке может быть шарик. Необходимо посчитать сколько нужно действий чтобы переложить все шарики в одну коробку (минимальное количество), для каждой коробки
Пример 1
Input: boxes = «110»
Output: [1,1,3]
Пример 2
Input: boxes = «001011»
Output: [11,8,5,4,3,4]
👉 Ссылка
#tasks #middle
Решение (brute force)