Leetcode-买卖股票的最佳时机 II

103 阅读1分钟

其实还是不是很理解,在这里记录下,多看几次就,后面肯定就懂啦。 dp[i][0] 表示第 i 天交易完成后手里没有股票的最大利润 dp[i][1] 表示第 i 天交易完成后手里持有一只股票的最大利润

int maxProfit(int* prices, int pricesSize)
{
	int i;
	int dp[pricesSize][2];
	// dp[i][0] 表示第 i 天交易完成后手里没有股票的最大利润
	// dp[i][1] 表示第 i 天交易完成后手里持有一只股票的最大利润 
	dp[0][0] = 0,dp[0][1] = -prices[0];
	for (i=1;i<pricesSize;i++) {
		dp[i][0] = fmax(dp[i-1][0],dp[i-1][1]+prices[i]);
		dp[i][1] = fmax(dp[i-1][1],dp[i-1][0]-prices[i]);
	}
	return dp[pricesSize-1][0];
}


int main() {
	int x;
	int num[] = {1,5,5,5,5,5,6};
	int res = maxProfit(num,7);
	printf("%d",res);
	return 0;
}

习题