Trytrytry's blog

By Trytrytry, 13 years ago, In Russian

Как вы считаете есть ли существенная разница (в сложности вычислений, итп) между двумя(тремя, четырьмя,...) техниками динамического программирование, рекурсивного с запоминанием и циклов с массивами.

Пример:
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];
 

Просто уж очень часто замечаю что некоторые пишут так некоторые так, вроде как и так так не плохо.
Какой метод вы используете чаще и почему?
  • Vote: I like it
  • -4
  • Vote: I do not like it