⚙️ Задача Running Sum of 1d Array
Дан массив чисел. Мы определяем текущую сумму массива как RunningSum[i] = sum(nums[0]…nums[i]). В каждой новой ячейке нового массива будет сумма от 0-го элемента и до i-го
👉 Running Sum of 1d Array
#tasks #junior
💡 Решение
class Solution {
public:
vector runningSum(vector& nums) {
vector ans(nums.size());
ans[0] = nums[0];
for (int i = 1; i < nums.size(); i++)
ans[i] = ans[i-1] + nums[i];
return ans;
}
};
Дан массив чисел. Мы определяем текущую сумму массива как RunningSum[i] = sum(nums[0]…nums[i]). В каждой новой ячейке нового массива будет сумма от 0-го элемента и до i-го
👉 Running Sum of 1d Array
#tasks #junior
💡 Решение
🔮 Задача Sum of v0w3ls
Создайте функцию, которая принимает строку и возвращает сумму гласных, причем для каждой гласной нужно прибавлять своё число (A->4, E->3, I->1, O->0)
👉Sum of v0w3ls (edabit)
#tasks #junior
Решение
int sumOfVowels(std::string str) {
int count = 0;
for (char ch : str) {
ch = std::tolower(ch);
switch (ch) {
case 'a': count += 4; break;
case 'e': count += 3; break;
case 'i': count += 1; break;
case 'o': break;
}
}
return count;
}
Создайте функцию, которая принимает строку и возвращает сумму гласных, причем для каждой гласной нужно прибавлять своё число (A->4, E->3, I->1, O->0)
👉Sum of v0w3ls (edabit)
#tasks #junior
Решение
⚙️ 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
Решение
🧿 Задача Простая пара
Дан массив целых чисел 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
Решение
⚙️ Задача 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
Решение
⏰ Задача 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)
❗ Задача Subtract the Product and Sum of Digits of an Integer (leetcode)
Даётся целое число n, верните разницу между произведением его цифр и суммой его цифр
🔮 Подсказка
Можно использовать % для вычисления последней цифры
#tasks #junior
👉 1281. Subtract the Product and Sum of Digits of an Integer (leetcode)
👉 Решение
Даётся целое число n, верните разницу между произведением его цифр и суммой его цифр
🔮 Подсказка
#tasks #junior
👉 1281. Subtract the Product and Sum of Digits of an Integer (leetcode)
👉 Решение
⚙️ Задача Number of Steps to Reduce a Number to Zero
Даётся число num. Необходимо посчитать сколько шагов нужно произвести, чтобы получился ноль
Если число чётное то нужно поделить на 2, а если не чётное, то вычесть 1 и так пока не получится ноль
В принципе задача достаточно простая. Её можно решить как итеративным способом, так и рекурсивным. Есть способ, который позволяет получить результат за O(1), но для решения этого не требуется
#tasks #junior
👉 Рещение
Даётся число num. Необходимо посчитать сколько шагов нужно произвести, чтобы получился ноль
Если число чётное то нужно поделить на 2, а если не чётное, то вычесть 1 и так пока не получится ноль
В принципе задача достаточно простая. Её можно решить как итеративным способом, так и рекурсивным. Есть способ, который позволяет получить результат за O(1), но для решения этого не требуется
#tasks #junior
👉 Рещение
💣 Задача Decompress Run-Length Encoded List
Есть список, в котором каждый элемент представляет собой пару чисел [freq, val], где freq — это целое число, обозначающее количество раз, которое нужно повторить число val. Ваша задача — разархивировать этот список, то есть создать новый список, в котором каждое число val повторяется freq раз
Пример
- Input: nums = [1,1,2,3]
- Output: [1,3,3]
Подсказка
- Задача простая, можно решить с помощью двух циклов
👉1313. Decompress Run-Length Encoded List (leetcode)
#junior #tasks
👉Решение
Есть список, в котором каждый элемент представляет собой пару чисел [freq, val], где freq — это целое число, обозначающее количество раз, которое нужно повторить число val. Ваша задача — разархивировать этот список, то есть создать новый список, в котором каждое число val повторяется freq раз
Пример
- Input: nums = [1,1,2,3]
- Output: [1,3,3]
Подсказка
- Задача простая, можно решить с помощью двух циклов
👉1313. Decompress Run-Length Encoded List (leetcode)
#junior #tasks
👉Решение