关注
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
相关推荐
牛客热帖
正在热议
# 晒一晒我的offer #
9720008次浏览 104905人参与
# 学历or实习经历,哪个更重要 #
39703次浏览 288人参与
# 北方华创开奖 #
21859次浏览 250人参与
# 地方国企笔面经互助 #
2313次浏览 6人参与
# 应届生被毁约被毁意向了怎么办 #
25355次浏览 234人参与
# 你最想要的公司福利是? #
37474次浏览 68人参与
# 查收我的offer竞争力报告 #
14883次浏览 206人参与
# 机械应届生薪资要多少才合适? #
12133次浏览 59人参与
# 一觉醒来,我觉醒了超级打工人系统 #
2526次浏览 32人参与
# 没有实习经历,还有机会进大厂吗 #
803721次浏览 13778人参与
# 我的工作日记 #
20740次浏览 269人参与
# 你觉得第一学历对求职有影响吗? #
14688次浏览 121人参与
# 寒假躺平还是提前实习 #
57564次浏览 420人参与
# 总结:哪家公司面试体验感最差 #
24301次浏览 118人参与
# 公司情报交流地 #
31343次浏览 222人参与
# 选完offer后,你后悔学本专业吗 #
7790次浏览 47人参与
# 不给转正的实习,你还去吗 #
1514147次浏览 16947人参与
# 实习,投递多份简历没人回复怎么办 #
2385607次浏览 34232人参与
# 00后45度躺现状 #
37335次浏览 305人参与
# 机械人,签完三方你在忙什么? #
23479次浏览 121人参与
# 秋招OC许愿 #
225116次浏览 1858人参与