В обеих функциях вы перебираете переменную int
(i
в первой, k
во второй)
В ваших циклах явно используется переменная итерации (в long curr = prev - i;
и в int minusVal = seq[k - 1] - k;
). Таким образом, это уже не «чистая» переменная итерации, а и переменная итерации и данные.
Одна из целей Streams - абстрагировать итерацию и покончить с переменными итерации. В лямбда-функции положение элемента в потоке недоступно. Таким образом, то, о чем вы просите, невозможно с Java Stream API.
Если вы все еще хотите использовать парадигму функционального программирования для решения этой проблемы, вам следует использовать рекурсию (ie. Потоки не подходят инструмент для вашей работы, рекурсия есть).