Я хотел бы получить идеи для поиска быстрого способа получить максимальную разницу между двумя векторами, как если бы они были накоплены.
Например, (еще не накоплено)
vector<int> vec1 = {10, 30, 20, 40 };
vector<int> vec2 = {5, 10, 5, 8 };
наивный способ получить результат - сначала собрать их в новые векторы:
vector<int> accumulated_vec1 = {10, 10+30, 10+30+20, 10+30+20+40};
vector<int> accumulated_vec2 = {5, 5+10, 5+10+5, 5+10+5+8};
i.e:
accumulated_vec1 = {10,40,60,100};
accumulated_vec2 = {5,15,20,28};
Тогда результатом будет максимальное число между abs(accumulated_vec1[i]-accumulated_vec2[i])
и 0 ‹= i ‹= 3.
так что result = 72
(когда я == 3)
более быстрый способ может заключаться в представлении векторов 1 числом (даже 0,10302040)... но я не могу найти это полезным: \ Думаю, что у меня есть миллионы пар 2 векторов vec1 и vec2, и я пытаюсь избежать вычислений накопленные векторы для каждой пары.. извините, если не ясно, но если я найду решение, я отвечу на этот надоедливый вопрос.