и посмотреть медиа
C/C++ LeetCode - задачи
и посмотреть медиа
LeetCode задачи C/C++.
LeetCode задачи C/C++.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Решения и задачи LeetCode на C/C++.
Задача: 1043. Partition Array for Maximum Sum Сложность: medium Если задан целочисленный массив arr, разбейте его на (смежные) подмассивы длины не более k. После разбиения значения каждого подмассива меняются так, чтобы стать максимальным значением этого подмассива. Верните наибольшую сумму заданного массива после разбиения. Тестовые примеры генерируются таким образом, чтобы ответ умещался в 32-битное целое число. Пример: Input: arr = [1,15,7,9,2,5,10], k = 3 Output: 84 👨💻 Алгоритм: 1⃣Инициализация: Создаем массив dp, где dp[i] будет хранить наибольшую сумму подмассива, заканчивающегося в позиции i. 2⃣Заполнение массива dp: Проходим по массиву arr и для каждой позиции i пытаемся разбить подмассив длины до k и обновить dp[i] с максимальной возможной суммой. 3⃣Поддержание максимального значения в подмассиве: Для каждого подмассива длины 1 до k, вычисляем максимальное значение в этом подмассиве и обновляем dp[i]. 😎 Решение: class Solution { public: int maxSumAfterPartitioning(vector& arr, int k) { int n = arr.size(); vector dp(n, 0); for (int i = 0; i < n; ++i) { int max_val = 0; for (int j = 1; j = 0) { max_val = max(max_val, arr[i - j + 1]); if (i - j >= 0) { dp[i] = max(dp[i], dp[i - j] + max_val * j); } else { dp[i] = max(dp[i], max_val * j); } } } } return dp[n - 1]; } }; Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!
Канал о сервисе 2captcha с уведомлениями о повышенных ставках для решения капчи и полезными новостями.
Новости кибербезопасности: эксплойты, уязвимости, утечки данных.
Медиа о технологиях будущего: интернет-культура, нейросети, полезные сервисы и разработки, которые станут обыденностью.