122. 买卖股票的最佳时机 II

错误原因

  每天只有两中情况,一种是持有股票,一种是不持有股票。
  不持有股票的计算比较简单,要么前一天没有买入时候今天也不买,要么前一天买入的时候今天卖出。因为前面状态都是最大利润的情况所以这里也从两个里面选出最优的情况。
  持有股票的计算就需要注意一下了,一开始我认为今天持有那情况只有一种,那就是前一天没持有的情况(最优情况)然后今天持有减去今天的价格。但是还有一种情况那就是今天卖出之后再持有

代码示例

func maxProfit(prices []int) int {
    dp:=make([]int,2)
    dp[1]=-prices[0]
    for i:=1;i<len(prices);i++{
        dp[0]=max(dp[0],dp[1]+prices[i])
        dp[1]=dp[0]-prices[i]
    }

    return dp[0]
}

func max(a,b int)int{
    if a>b{
        return a
    }
    return b
}

你可能感兴趣的:(算法,go)