Icebound

icebound-area

单调栈全攻略

最近刷了不少单调栈,总算搞懂了

基本性质

  1. 入栈顺序为下标顺序。
  2. 出栈序列分批次为单调增/单调减。
  3. 每个元素应当入栈一次出栈一次,复杂度为O(N)

利用好这3点性质,是发挥单调栈作用的关键:

对于性质1,我们可以认为:当你使用了单调栈,那么你所解决的问题一定与数组下标顺序(或者排序后的数组下标顺序)有关系。相当于帮你固定了题目中的一组偏序。对于性质2,我们认为:想要使用单调栈,那么答案或者中间结果必然具有某种单调性。对于性质3,当我们需要O(N)算法时,可以考虑单调栈。

说的过于抽象了,看题。

READ MORE →

LeetCode游记与总结

为了春招开始刷leetcode。

之前学竞赛的时候更多注意的是在给定时限和空间限制下完成问题,一般也不会要求你原地完成xxx,卡nlogn,卡常数之类的。而且对于快排啊,堆之类的就直接调库了,很少自己写。此外,一些在竞赛中被归为【乱搞】并且很少出的题我也没有仔细总结过。但是在实际工程和面试中这些都是要遇到的,这时候我就发现自己很菜。于是在这里记录一下以前没有注意到的细节和想法。

READ MORE →

暑假课件例题补完计划

LYD说过,只要看完课件上的例题,都做一做,NOIP就能提高不少的分。

于是我开了这个大坑,打算把课件上的例题都做了。

其实并不是很容易啊。。。有好多内容都没听懂的。。。

好吧,一定要克服困难!

READ MORE →