关注
3、给一个由大小写字母组成的字符串,每次删除一个最长的且最左侧的一个连续子串(需要由相同字母构成),求最小删除次数。模拟题,暴力模拟是O(n^2),据说这题暴力是可以AC的。一种低复杂度解法是把连续的部分组织成链表,比如aBBa变成 (a, 1) -> (B, 2) -> (a, 1) 这样,链表的好处是可以很快地删除并且合并两个端点。现在问题就是怎么找最长的那一个部分(比如之前的例子就是(B, 2))。可以考虑用线段树维护最大值,然后通过二分的形式把最大且最左的那一个部分给找出来。找出来之后更新链表,然后同时更新线段树。复杂度O(nlog^2n)。
4、给一个正整数组成的列表,找出一个长度不小于m的子段使得其中平均值最大。暴力据说可以骗不少分。首先区间和转前缀和,设前缀和为S[i],那么平均值就是(S[r] - S[l]) / (r - l)。给定一个平均值k,另(S[r] - S[l]) / (r - l) >= k 则有 S[r]-kr >= S[l]-kl。这样给定k,我们可以很快地找出满足上式成立的最大区间长度 t=r-l,而t关于k是单调的。这样二分答案k,然后对于每一个k找出这个t,如果t<m说明k找大了,就二分左半区间,否则二分右半区间。由于这个找t的过程需要算一个前缀最小值并且在其中二分,复杂度就是O(nlog^2n)。
查看原帖
2 1
相关推荐
牛客热帖
更多
正在热议
更多
# 为了去实习,我赌上了___ #
18472次浏览 194人参与
# 摸鱼被leader发现了怎么办 #
70592次浏览 407人参与
# 百融云创求职进展汇总 #
144次浏览 0人参与
# uu们,春招你还来吗? #
10535次浏览 76人参与
# 2025年终总结 #
11150次浏览 196人参与
# 十二月请对我好一点 #
23405次浏览 325人参与
# 父母对你找工作是助力还是阻力? #
12517次浏览 192人参与
# 如果可以,你希望哪个公司来捞你 #
154625次浏览 650人参与
# 降低公积金和取消房补怎么选 #
23294次浏览 78人参与
# 工作中哪个瞬间让你想离职 #
109258次浏览 771人参与
# 哪一瞬间让你觉得“这班不如不上” #
10091次浏览 142人参与
# 高薪高压 vs 低薪wlb,你怎么选? #
9808次浏览 108人参与
# 一人推荐一个值得做的项目 #
8262次浏览 113人参与
# 运营每日一题 #
112586次浏览 885人参与
# 第一份工作能做外包吗? #
85685次浏览 574人参与
# 这些公司卡简历很严格 #
80174次浏览 366人参与
# 硬件人的简历怎么写 #
317035次浏览 3063人参与
# 工作前VS工作后,你的心态变化 #
12257次浏览 150人参与
# 秋招提前批启动你开冲了吗 #
160645次浏览 2244人参与
# 工作中出现了XX情况正常吗 #
30000次浏览 207人参与
# 学历or实习经历,哪个更重要 #
201758次浏览 1067人参与
