Чтобы доказать, что ваша временная сложность равна O (n), вам нужно доказать, что
return func(i)+func(n-1-i);
не будет вызываться более n раз. Пока n уменьшается как минимум на 1 (i - int, от 0 до n, а n уменьшается каждый раз на i + 1) при каждом вызове, вы будете использовать эту строку максимум n раз.
И поскольку без рекурсивного вызова ваша временная сложность равна O (1), то с рекурсивным вызовом ваша временная сложность равна O (n), и вы не сможете вычислить лучшую, пока случайные может каждый раз давать 0.