题解 | #买卖股票的最好时机(一)#贪心+DP
买卖股票的最好时机(一)
http://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec
// write code here
// min_p := prices[0]
// max_in := 0
// for _, v := range prices{
// min_p = min(min_p, v)
// max_in = max(max_in, v-min_p)
// }
// return max_in
n := len(prices)
dp := make([][]int, n)
for i:= 0;i<n;i++{
dp[i] = make([]int, 2)
}
dp[0][0] = 0 //不持有股票
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], -prices[i]) //前一天买了没卖,或者当天买入
}
return dp[n-1][0]
}
func max(a,b int)int{
if a>b{
return a
}else{
return b
}
}
func min(a, b int)int{
if a<b{
return a
}else{
return b
}
}