关注
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
相关推荐
09-25 21:25
武汉理工大学 Java 点赞 评论 收藏
分享
09-22 22:22
中山大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你的mentor是什么样的人? #
6079次浏览 53人参与
# 26届秋招公司红黑榜 #
16583次浏览 55人参与
# 未岚大陆求职进展汇总 #
38410次浏览 117人参与
# 怎么给家人解释你的工作? #
2903次浏览 37人参与
# 你觉得mentor喜欢什么样的实习生 #
12138次浏览 325人参与
# 帮我看看,领导说这话什么意思? #
8521次浏览 40人参与
# 平安产险科技校招 #
2488次浏览 0人参与
# 实习必须要去大厂吗? #
147686次浏览 1548人参与
# 你觉得多少薪资算SSP? #
112899次浏览 415人参与
# 求职低谷期你是怎么度过的 #
6554次浏览 126人参与
# 度小满求职进展汇总 #
10700次浏览 57人参与
# 校招泡的最久的公司是哪家? #
5976次浏览 29人参与
# 你遇到过哪些神仙同事 #
117460次浏览 750人参与
# 同bg的你秋招战况如何? #
159017次浏览 927人参与
# 没有家庭托举的我是怎么找工作的 #
14541次浏览 180人参与
# 从哪些方向判断这个offer值不值得去? #
7825次浏览 102人参与
# 牛客树洞,我想对你说 #
1845次浏览 35人参与
# 你觉得面试是靠实力还是靠运气 #
23463次浏览 278人参与
# 面试紧张时你会有什么表现? #
2097次浏览 23人参与
# 职场新人体验 #
99785次浏览 660人参与
# 扒一扒那些奇葩实习经历 #
118718次浏览 1065人参与
# 应届生应该先就业还是先择业 #
142787次浏览 733人参与