Twifor level
获赞
112
粉丝
27
关注
0
看过 TA
2946
门头沟学院
2025
算法工程师
IP属地:天津
秋招结束,xdm未来再见
私信
关注
11-02 07:25
已编辑
门头沟学院 算法工程师
QwerApap:去年毕业的,和你做了一样的选择。我当时只是放了一个年包 35 的中厂 offer 就感觉很困难了 😂。现在的情况是生活很悠闲,有时间做自己喜欢的事情,特别满意自己的这个决定。
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
11-05 16:21
已编辑
门头沟学院 算法工程师
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
05-10 01:18
已编辑
门头沟学院 算法工程师
Twifor: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道真题和解析 投递拼多多集团-PDD等公司10个岗位
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务