func maxProfit(prices []int) int {
// dp[i][0]表示第i天持有股票的最大利润,dp[i][1]表示第i天不持有股票的最大利润
dp := make([][]int, len(prices))
for i, _ := range dp {
dp[i] = make([]int, 2)
}
//dp初始化
dp[0][0] = -prices[0]
dp[0][1] = 0
for i := 1; i < len(prices); i++ {
dp[i][0] = max(dp[i-1][0],-prices[i]) //第i天持有(第i天买了;第i-1天持有两种情况)
dp[i][1] = max(dp[i-1][1],dp[i-1][0]+prices[i]) //第i天不持有(第i-1天持有第i天卖了;第i-1天不持有两种情况)
}
return dp[len(prices)-1][1]
}
func maxProfit(prices []int) int {
// dp[i][0]表示第i天持有股票,dp[i][1]表示第i天不持有股票
dp := make([][]int, len(prices))
for i, _ := range dp {
dp[i] = make([]int, 2)
}
dp[0][0] = -prices[0]
dp[0][1] = 0
for i := 1; i < len(prices); i++ {
dp[i][0]=max(dp[i-1][0],dp[i-1][1]-prices[i])
dp[i][1]=max(dp[i-1][1],dp[i-1][0]+prices[i])
}
return dp[len(prices)-1][1]
}