#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*’的转换是无效的,这意味着什么以及如何解决这个错误
发布于 2020-07-03 12:16:57
表达式solve(i,k+1,j)是错误的-- solve函数期望一个指向int的指针作为它的第一个参数,这个参数被期望指向一个数组,但是您只需要传递一个整数i。
https://stackoverflow.com/questions/62715202
复制相似问题