力扣(LeetCode) 动态规划之 买卖股票的最佳时机
力扣(LeetCode) 动态规划之 买卖股票的最佳时机
下面请见题
废话不多说,先给代码后分析!
在拿到这道题目的时候大多数人第一反应便是找到最低峰与最高峰,然后发现根本没有啥用(????)
然后思考便会发现其中一个条件是 买入时的低价的时间要在卖出的高价的时间前
由此大体思路便已经出来了,就是假设每一天都会卖出股票,那么我们则需要在这一天的前面的天数里找到最低股价来买入
那么,怎么实现这个想法?答案显而易见,就是设置一个min变量,假设它为prices[0],然后遍历和prices[i]作比较,如果当前prices[i]小于min,则把prices[0]赋值给min,然后当前的min(不管有没有执行上述的赋值prices[i]的过程),那么此时的min就是当前prices[i]之前的最小值!!
因为作为大一菜鸡的博主我很菜,所以我一开始用了3个for循环并列,第一个循环用来寻找Min,第二个循环用来把prices和存放最小值的数组mins依次做差,第三个循环用来找最大利润。
然而。。。。。。。。我忽然惊醒到。。。。这他喵的一个for循环不就搞定了嘛,连那个什么Mins数组都不用!!!猛然惊醒的我留下了悔恨的眼泪,重新按照这个思路便写出了最上面的最终版本。
代码很简单啦,相信我不用讲也能看得懂,嘿嘿。
另外,这篇文章大佬可回避,我知道我在这条路上还有很长的道路,各位大佬多多指教。
--------------分割线------------------------------------------------------------------------------------
疫情寒假这两个月以来,学了很多也想了很多,有关于学习方面也有关于未来工作方向。我曾经也迷茫过,曾经自信满满的踏入了学校却发现自己什么也干不好,代码能力这两个月也毫无长进。有时候真的觉得迷茫啊,不知道该怎么办,看着身边的一个个人超过了自己,,自己也很焦虑,但我又转念一想,我报考这个专业是我热爱的,我只要自己开心就好,就像现在,想到了一个新的算法就乐的屁颠屁颠的跑到****来分享(笑,虽然写的也不咋地)但我觉得人生的一大乐趣就是分享,能为别人做出一份贡献,我就会很高兴。就像你来搜到这道题,看到我的这篇博客,只要你会了这道题,那我就开心