Coding Practice,48天强训(3)

Topic 1:复合词转简写词

第一题比较简单,但是解题中学到了个新知识

大佬们确实厉害,这里都有巧思

Topic 2:滑动窗口问题

这题和leetcode 209是一个系列,顺手给209也解了先

和209的区别就是,输出上面需要给出LR,还得是L较小的那个,那么其余基本相同,只不过需要额外增加一个容器去储存最小的LR区间,最后比较L的值就好了

但是初步完成的代码显示内存超了,显然用vector<vector<int>>来储存全部的结果太重了,想复杂了,所以的考虑做一下优化,在遍历过程中就把最小的比出来,最后只记录最小的结果就行了

Topic 3:除2! 贪心 + priority_queue内部堆特性

这个题目的知识点——熟悉priority_queue的用法和性质,明白它的底层是一个堆,默认大堆;

在此基础上还需要注意堆排序和arr实际数据之间的关系,在第一次代码中我采取了priority_queue<int> max_heap;来储存arr数据,然后排序,结果做完发现排序后里堆的数据很难和原本的arr源数据进行操作,后续采用priority_queue<pair<int,int>> max_heap;的方式,first存数据负责堆排序,second存索引负责原地修改数据,然后解决了这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值