Раздвижная Windows Частота Экспоненциальная Максимальная Сумма
Я столкнулся с проблемой возврата подарков и попытался решить ее следующим способом:
- Я сделал 2d массив, где строка представляет числа в массиве, а столбец представляет индекс, с которого начинается окно. По сути, dp[i][j] содержит частоту i-го элемента в окне, начиная с j.
- Сначала я вычисляю частоту каждого элемента в размере k окна 0-го окна, затем я создал массив maxarr, чей i-й элемент представляет экспоненциальную сумму окна, начиная с i. Итак, на данный момент у меня есть dp, который содержит частоту элемента 0-го окна и maxarr, который содержит экспоненциальную сумму 0-го окна.
- Начиная с индекса 1, я копирую частоту предыдущих столбцов, как и прежде, за исключением случая 2 - если элемент просто исключен по сравнению с предыдущим окном, тогда я помещаю частоту prev-1, а если затем элемент просто добавляется в окно, тогда ставим prev+1 в текущем столбце.
- После этого я рассчитал все элементы максарра и нашел максимум.
Однако я получил только 2 случая. Пожалуйста, помогите мне исправить мою ошибку. Нужно ли обновлять мой код здесь?