代码随想录算法训练营第二十七天| LeetCode455 分发饼干、LeetCode376 摆动序列 、LeetCode53. 最大子序和

倒时差倒了两周了,终于能回归正常了,尝试每天做两个,赶上进度。。。

LeetCode455 分发饼干

题目链接/文章讲解/视频讲解:代码随想录

第一想法:先把两个数列由小到大排序好;两个pointer,i与j,分别指向g的第一位与s的第一位;然后通过一个while loop i < len(g) and j < len(s),如果s[j] >= g[i]则找到一个满足条件的,如果不满足,则j+=1,让饼干的pointer指向下一个饼干,然后继续比较;速度: 排序O(nlogn), while loop一定会把s遍历一遍, n=len(s), O(n), 最终O(nlogn + n) = O(nlogn)

看完随想录后:我的想法非常直接的想去遍历两个数组,尽管在写代码的时候才发现饼干的大小才是关键,饼干数组是决定最终有多少个饼干被分发出去的关键,所以饼干已经是要被先遍历一遍的,但是在一开始分析的时候,并没有注意这一点。看完随想录后,发现代码可以写的更加紧凑。

难点:如果能在分析题目的阶段就知道饼干数量更重要,说明理解的应该更透彻

LeetCode376 摆动序列

题目链接/文章讲解/视频讲解:代码随想录​​​​​​

第一想法:一个一个计算差值,发现有不满足要求的,直接跳过。。。完全不对。base case那三个能过,但是后面遇到数组差值为0的时候,就会卡住。

看完随想录后:需要考虑的东西很多,还是感觉理解的不到位,但是又说不上来。

难点:找到所有的例子,通过例子总结逻辑。

LeetCode53. 最大子序和

题目链接/文章讲解/视频讲解:代码随想录

第一想法:第一个背下来的用动态规划做的题。

看完随想录后:确实没思考过用贪心的方法来做,不过感觉跟动态规划的感觉很类似。

难点:没背诵下来

今日收获:376这道题,收获最多,需要知道的细节最多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值