给你一个整数数组 prices
,其中 prices[i]
表示某支股票第 i
天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
返回 你能获得的 最大 利润 。
func maxProfit(prices []int) int {
n := len(prices)
dp := make([][2]int, n)
dp[0][1] = -prices[0]
for i := 1; i < n; 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[n - 1][0]
}
func maxProfit(prices []int) int {
n := len(prices)
dp := make([]int, 2)
dp[1] = -prices[0]
for i := 1; i < n; i ++ {
dp[0] = max(dp[0], dp[1] + prices[i])
dp[1] = max(dp[1], dp[0] - prices[i])
}
return dp[0]
}
func maxProfit(prices []int) int {
ans := 0
for i := 1; i < len(prices); i ++ {
ans += max(0, prices[i] - prices[i - 1])
}
return ans
}