不太会用动态规划,用了个贪心,看不懂可以留言哈
package main

import "math"
/**
  * 
  * @param prices int整型一维数组 
  * @return int整型
*/
func maxProfit(prices []int) int {
	// write code here
	if len(prices) == 0 {
		return 0
	}
	maxCut := 0 // 记录每个时刻最大差值(只能往前减)
	lens := len(prices)
	bottom := prices[0] //初始时最底部值置为prices[0]
	for i := 1; i < lens; i++ {
		if prices[i] > prices[i-1] { //如果呈递增态,一直往后遍历至转折点
			continue
		} else { //转折点
			maxCut = int(math.Max(float64(prices[i-1]-bottom), float64(maxCut))) //更新最大差值
			bottom = int(math.Min(float64(prices[i]), float64(bottom)))          //更新底部值
		}
	}
	maxCut = int(math.Max(float64(prices[lens-1]-bottom), float64(maxCut)))    //若最后有一段递增,需要额外处理
	return maxCut
}