首页 > 解决方案 > 为什么当我尝试在 codechef 中提交我的问题时,以下 DP 问题显示 SIGSEGV 错误?

问题描述

以下是我在 codechef 中为蜘蛛侠和跳跃问题编写的代码。但它不适用于所有测试用例,这就是为什么它没有被提交并且在提交失败后显示 SIGSEGV 错误。

int *dp;
void memset(int N)
{
   dp = new int[N+1];
   for(int i=0;i<=N;i++)
      dp[i] = -1;
}

int energy(int n,int N,int Height[])
{
   if(n == N-1)
      return 0;
   if(dp[n]!=-1)
      return dp[n];
   int mini = INT_MAX;
   for(int i = 1;n+i<=N-1;i=i*2)
   {
      int ener = abs(Height[n+i] - Height[n]) + energy(n+i,N,Height);
      mini = min(mini,ener);
   } 
   dp[n] = mini;
   return mini;
}

标签: recursiondynamic-programming

解决方案


推荐阅读