Как вы считаете есть ли существенная разница (в сложности вычислений, итп) между двумя(тремя, четырьмя,...) техниками динамического программирование, рекурсивного с запоминанием и циклов с массивами.
Пример:
1. С запоминаем и рекурсией
int mem[100]; //memset(dp,255,sizeof dp);
int rec(int n)
{
if(n <= 1) return 1;
if (mem[n] != -1) return mem[n];
mem[n] = rec(n - 1) + rec(n - 2);
return mem[n];
}
2. C циклами
int dp[100];
dp[0] = dp[1] = 1;
for (int i = 2; i < n; i++)
dp[i] = dp[i - 1] + dp[i - 2];
Просто уж очень часто замечаю что некоторые пишут так некоторые так, вроде как и так так не плохо.
Какой метод вы используете чаще и почему?
Какой метод вы используете чаще и почему?