题解 | #买卖股票的最好时机(一)#贪心+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
    }
}
全部评论

相关推荐

02-17 20:43
西北大学 Java
在做测评的猫头鹰很紧张:他问你,你问deep seek
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务