тут может быть выход за границы массива, это надо учесть
8 3
1 2 3 4 1 6 7 8 1 1 9 11 7 14
minA: [1, 2, 1, 1, 1, 6, 1, 1, 1, 1, 7, 7]
defA: [6, 18, 8, 11, 14, 126, 16, 10, 11, 21, 189, 224, 0, 0]
defA: [6, 18, 8, 11, 14, 126, 16, 10, 11, 21, 189, 224, 0, 0]
maxDef: [1, 1, 4, 5, 5, 5, 6, 9, 10, 11, 11, 11]
best next: [5, 5, 5, 6, 9, 10, 11, 11, 11]
summ: [356, 368, 358, 251, 238, 350, 240, 234, 235, 224, 224, 224]
start chain: 1
def: [6, 18, 8, 11, 14, 126]
maxDef: [1, 1, 4, 5, 5, 5, 5]
best next: [5, 5, 5]
summ: [132, 144, 134, 126, 126, 126]
Последние k элементов заносятся в кэш как есть, от них никуда не деться.
Далее для каждого элемента с номером i нужно просмотреть, как он сочетается с элементами i + k .. i + 2k
И так идём до первого элемента. Потом выбираем лучший из элементов с номерами 1 .. k
в один проход?
храня промежуточные результаты в матрице и оптимизируя очередью или стеком.
Я имел ввиду, на ограничения количества элементов, из которых составляется сумма. Если нет - то все очень не радужно. Метод "ветвей и границ" точного решения не гарантирует.
Надеюсь, про O(n) это вы пошутили.
Прикинь тебе предлагают подработать и добавить какой нибудь компонент в битрикс,ты заходишь и глаза на лоб выскакивют от того что там вместо битрикса ты Zend увидел. При том ты в глаза не разу его не видел раньше,не то что не работал на нем.
Контроллеры для компонентов есть,но не для страниц статичных.
По идее заголовки страницы должны создаваться в контроллере и потом выводится шапка,шаблон,подвал.
Вы говорите о "дисковом буфере в оперативной памяти", я смею предположить, что вы говорите о DRAM. Так вот он есть не у всех SSD накопителей и его размер много меньше оперативной памяти и он не хранит в себе контент файлов.
К тому же вы приводите синтетический тест, так как он полностью игнорирует вытеснение информации (у вас же в реальном проекте читается не только этот файл, но и. сотня файлов битрикса + upload).
Александр Маджугин, почему вы так считаете? Если сравнить файловый кеш на SSD диске и существующий ключ в оперативной памяти redis, то из redis данные прочитаются значительно быстрее.
Кстати как минимум в пайтоновской реализации есть проблемка, из-за которого в результат могут попадать элемент за пределами списка. Вместо if next < 0 нужно использовать if next < 0 or next > len(data):
Но увы - программа теперь не проходит по скорости - сыплетася на больших k - всё из-за max() для скользящего отрезка. Попробую избавится от этого недостастака