#include <iostream>
#include <cstring>
#include<bits/stdc++.h>
using namespace std;
int static t[1000][1001];
int solve(int arr[],int i, int j)
{
if(i>=j)
return 0;
if(t[i][j]!=-1)
return t[i][j];
int mini=INT_MAX;
for(int k=i;k<=j-1;k++)
{
int temp=solve(arr,i,k)+solve(i,k+1,j)+(arr[i-1]*arr[k]*arr[j]);
if(temp<mini)
mini=temp;
}
return t[i][j]=mini;
}
int main()
{
memset(t,-1,sizeof(t));
int arr[]=[20,30,40,10,60,90];
solve(arr,1,sizeof(arr))
}
以上代码是动态规划中MCM代码
我得到的错误消息是从“int”到“int*”的转换无效,这意味着什么以及如何解决这个错误
表达式solve(i,k+1,j)
是错误的-solve
函数需要一个指向int
的指针作为它的第一个参数,该参数应该指向数组,但您只传递了一个整数i
。