【Fifty Project - D37】

fifty project算是失败了一半了

成功的那一半在于一定程度上拯救了我的作息和健康,两个月前入职体检的肝有点不健康,昨天复查发现全都回到了健康范围!尿酸也在正常范围!就是体重还是没减下来hhh

失败的一半在于自己很差劲的规划能力依旧差劲,每天还是喜欢根据喜好进行学习,往往就变成了刷题日记了

不管怎么说,经历过就很棒!加油加油加油!

今日完成记录

Time Plan 完成情况
17:30 - 19:30 🏸
20:00 - 21:30 Leetcode

Leetcode

上周完成的周赛少有地拿下了三个题,上了一波大分【和Knight的距离有更近了!】,第四题本来也有机会拿下的QAQ,是既熟悉又陌生的树上倍增算法,这个方法怎么也是写了又写,学了又学,思路也大致都对,就差一丢丢!昨天把那个压轴给复盘了一下,今天重新打开灵神的常用数据结构题单,继续堆部分的题目咯。

今天的刷题感觉收获颇丰! 懒删除堆和字典树计数
滑动窗口中位数:给一个数组,要求计算大小为K的滑动窗口中的中位数

思路:因为是在对顶堆的题目里面,所以上来就有思路了,拿一个最大堆存较小的一半数,拿一个最小堆存较大的一半数,然后每次从堆顶计算中位数。麻烦的地方在于滑动窗口出窗口的数要如何进行删除。我的思路是用两个hashSet记录两个堆存储过的数字的下标,然后利用hashset懒删除【这也算一种比较呆的懒删除吧hhhh】后来学习了灵神的懒删除【用一个hashmap记录堆中数字需要删除的次数,当push数字的时候检查一下是否有删除次数,有的话直接修改删除次数相当于删除了;另外,在每次pop或者peek都得进行一次堆顶的实际删除,也就是检查堆顶元素是否删除次数为0】

灵神的代码将这个堆封装了一层,优雅不少~

含最多k个可被p整除的子数组:给定一个数组以及K和P,要求统计有多少个子数组【数组中任意长度的连续数】,其中包含最多k个可以整除P的数。要求做到O(n^2)

思路:一开始想了个O(n)的解法,但是没注意到不同子数组这一点,就是可能出现两个子数组选取的数下标是不同的但是数都是一样的,例如数组2,3,3中长度为1的子数组有【2】、【3】、【3】但其中后两个视作同一个子数组。

简述一下这个O(n)做法:首先将这个数组根据能否整除p变成0和1【能整除则为1不能则为0】,然后计算前缀和数组,并且记录每个前缀和首次出现的位置(实际上就是能整除p的数的位置),pre[i]表示从i到数组最初,共有pre[i]个数能整除p。那么对于每个位置,以当前位置为结尾的符合条件的子数组数量有pre[i] <= k ? i + 1 : i - first[pre[i] - k]。累加即可得解。

正解是:我回头看了一眼这个题目是哪个题单,发现居然是字典树题单,瞬间幡然醒悟,居然是用字典树进行计数!!从每个数开始向后遍历构造子数组,只要当前子数组依然符合要求就继续构造。同时用字典树存储当前方案。最后统计这颗字典树有多少个节点即可!【实际上在构造过程中就可以统计出来】

灵神大佬说过的如何评价做题是否有效,当想不出思路看了题解之后,如果是脑瓜子嗡的一下,"还能这样!"那就是有用的,如果是"我真是个XX"那说明还得练hhhh

应该是自己刷题少了,字典树计数确实好像没遇到过emmmm

收获颇丰~

相关推荐
橘颂TA16 小时前
【剑斩OFFER】算法的暴力美学——两整数之和
算法·leetcode·职场和发展
Dream it possible!17 小时前
LeetCode 面试经典 150_二叉搜索树_二叉搜索树的最小绝对差(85_530_C++_简单)
c++·leetcode·面试
xxxxxxllllllshi17 小时前
【LeetCode Hot100----14-贪心算法(01-05),包含多种方法,详细思路与代码,让你一篇文章看懂所有!】
java·数据结构·算法·leetcode·贪心算法
-森屿安年-20 小时前
LeetCode 283. 移动零
开发语言·c++·算法·leetcode
元亓亓亓1 天前
LeetCode热题100--79. 单词搜索
算法·leetcode·职场和发展
2501_941143731 天前
缓存中间件Redis与Memcached在高并发互联网系统优化与实践经验分享
leetcode
Elias不吃糖1 天前
LeetCode每日一练(209, 167)
数据结构·c++·算法·leetcode
野蛮人6号1 天前
力扣热题100道前62道,内容和力扣官方稍有不同,记录了本人的一些独特的解法
数据结构·算法·leetcode
CoderYanger1 天前
优选算法-栈:69.验证栈序列
java·开发语言·算法·leetcode·职场和发展·1024程序员节
2501_941803621 天前
Python高性能大数据分析与Pandas实战分享:海量数据处理、清洗与优化经验
leetcode