题解 | #买卖股票的最好时机(一)#

买卖股票的最好时机(一)

https://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec

不太会用动态规划,用了个贪心,看不懂可以留言哈
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
}


全部评论

相关推荐

牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务