Skip to content

Latest commit

 

History

History
 
 

120. Best Time to Buy and Sell Stock

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

今天和妹子去了天津,这道题的第一个版本就是在去天津的城铁上用手机提交的。其实 LeetCode 的移动web端已经做的很不错了,编辑器连括号都会自动补齐,而且还能补齐在合适的位置。语法高亮什么的就不必多说了,反正给我的体验很不错,只怪手机的屏幕太小,每次都提心吊胆是否会出现粗心的格式问题。

这道题很久之前做过它的第二版,也就是允许多次交易的,相比之下,只允许一次交易就显得非常简单了。本质还是那句,低买高卖。

由于在城铁上边聊天边做题,我写的很啰嗦,还弄了两个变量,一个low,一个high,迭代整个数组,遇到比high大的,将其赋值给high;如果遇到比low小的,在将其值赋给low的同时,还要注意将high也赋值为low,因为遇到更low的价格,意味着之前的 max profit 已经到了头,其high已经失去了意义,需要从头计算。当然很显然,整个过程中,max profit 要时刻保持最大值就是了。

这是所有求最大值最小值类型题的一个常用思路,留个变量在迭代过程中一直纪录max/min。

回家之后,发现其实high没有必要存在,因为如果low变化,high又要从新纪录,那么表明high其实是步步跟随prices迭代的脚步的,计算max的值时,与其让 high - low,还不如直接用 prices[i] - low。本质是没差别的。

于是在github上留下比较满意的这一版,希望大家指正。