时间复杂度:O(n)
解题思路
声明一个变量curMin用来记录已知的最低价格,然后从左向右遍历数组,计算每天的价格与curMIn的差值,这就是我们赚的差价。
AC代码
func maxProfit(prices []int) (res int) {
curMin:=prices[0]//curMIn初始化为第一天的价格
for _,p:=range prices{
//记录最大差价
if p-curMin>res{
res=p-curMin
}
//更新curMin
if p<curMin{
curMin=p
}
}
return res
}
感悟
感觉自己有点傻了,一道easy题想了半天,受昨天刷题影响把单调栈都想出来了,但还是做不出来。看了题解醍醐灌顶,明白自己有多么菜了~