关注
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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 交出你的校招焚诀 #
9654次浏览 164人参与
# 27届求职交流 #
1910次浏览 69人参与
# 神州信息求职进展汇总 #
3431次浏览 66人参与
# 实习生至暗时刻 #
17107次浏览 327人参与
# 26届求职交流 #
1746次浏览 51人参与
# 面试___岗的必刷题单 #
11327次浏览 203人参与
# 实习想申请秋招offer,能不能argue薪资 #
224494次浏览 1192人参与
# 米哈游求职进展汇总 #
582841次浏览 2995人参与
# 字节开奖 #
130376次浏览 602人参与
# 哪些公司开暑期实习了? #
15957次浏览 133人参与
# 你经历过哪些AI幻觉? #
4689次浏览 115人参与
# 春招开局,你有保底offer吗? #
23289次浏览 193人参与
# 三月的小目标 #
9444次浏览 176人参与
# AI面试问题分享 #
12248次浏览 253人参与
# 你被哪些公司挂了? #
148513次浏览 821人参与
# 找AI工作应该卷什么? #
3570次浏览 68人参与
# 十一月总结 #
82894次浏览 428人参与
# 生化医药面经大本营 #
172354次浏览 549人参与
# 实习生的生存小技巧 #
6455次浏览 106人参与
# 你觉得第一学历对求职有影响吗? #
234320次浏览 1278人参与
# 我的第一份实习怎么找的 #
236244次浏览 1965人参与

查看19道真题和解析