请问我的哪里错了捏,蚌住了
int dp[100000][2][4];
//第一个参数为第几天,第二个参数为第几笔交易,第三个参数分别为 未买入、刚买入、持有中、已售出
int max(int x,int y)
{
return x>y? x:y;
}
int maxProfit(int* prices, int pricesSize) {
memset(dp,0,sizeof(dp));
int i,j,k,maxv=0;
dp[0][0][0]=0;
dp[0][0][1]=-prices[0];
dp[0][0][2]=-prices[0];
dp[0][0][3]=0;
for(i=1;i<pricesSize;i++)
{
dp[i][0][0]=dp[i-1][0][0];
dp[i][0][1]=dp[i-1][0][0]-prices[i];
dp[i][0][2]=max(dp[i-1][0][1],dp[i-1][0][2]);
dp[i][0][3]=max(dp[i-1][0][1],dp[i-1][0][2])+prices[i];
dp[i][1][0]=max(dp[i-1][0][3],dp[i-1][1][0]);
dp[i][1][1]=max(dp[i-1][0][3],dp[i-1][1][0])-prices[i];
dp[i][1][2]=max(dp[i-1][1][1],dp[i-1][1][2]);
dp[i][1][3]=max(dp[i-1][1][1],dp[i-1][1][2])+prices[i];
for(j=0;j<2;j++)
for(k=0;k<4;k++)
maxv=max(maxv,dp[i][j][k]);
}
return maxv;
}