Icebound

icebound-area

单调栈全攻略

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

基本性质

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

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

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

说的过于抽象了,看题。

READ MORE →

[Leetcode系列]初级算法

初级系列:https://leetcode.cn/leetbook/detail/top-interview-questions-easy/

后续会持续更新leetcode思路、代码以及题解。不一定每个题都写,但是会写一些我认为需要记录的。

READ MORE →

LeetCode游记与总结

为了春招开始刷leetcode。

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

READ MORE →

HBCPC2019题解

READ MORE →

随便写写题解

CodeForces – 1089A  Alice the Fan

题意:两个人打BO5的比赛。在一场比赛中,如果A得到k分,B得分小于等于k-2,则比赛结束,A赢,否则继续比赛,直到两人分数差距大于等于2。前4局比赛k=25,第5局为15。现在已知两人每局的得分之和(X:Y),求A能够拿到的最好的大比分(即A如果能赢的话,要赢得最多,否则让A输的最少)。数据范围200

READ MORE →