题目介绍:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
看了B站博主的卡尔的视频,我感觉很复杂,也不知道如下的实现思路算不算动态规划
完整代码如下:
package main
import (
    "fmt"
    "math"
    "testing"
)
// MaxProfit 计算一次交易能获取的最大利润
func MaxProfit(prices []int) int {
    if len(prices) == 0 {
       return 0
    }
    minPrice := math.MaxInt64
    maxProfit := 0
    for _, price := range prices {
       if price < minPrice {
          minPrice = price
       } else if price-minPrice > maxProfit {
          maxProfit = price - minPrice
       }
    }
    return maxProfit
}
func TestGp001(t *testing.T) {
    prices := []int{7, 1, 5, 3, 6, 4}
    fmt.Println("最大利润:", MaxProfit(prices)) // 输出: 最大利润: 5
}
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/739006
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
 

![[通达信指标]通道系列指标3 反转通道指标](https://95sca.cn/2024/08/07/6oPLhcretbia1Vg1722998597.78695.jpg?imageMogr2/thumbnail/!480x300r|imageMogr2/gravity/center/crop/480x300) 
             
             
                     
             
             
            ![[通达信指标]背离第二期 多种不同背离方法的MACD 指标 结构 钝化](https://95sca.cn/2024/08/07/eCf2FI5eMZOa0ug1722998690.6920614.jpg?imageMogr2/thumbnail/!480x300r|imageMogr2/gravity/center/crop/480x300)