小米笔试

蹲蹲大佬题解

#秋招笔试记录#
全部评论
第一题:本质上是求哪个题会的人最多,考虑到直接把每个区间暴力加起来会 T,于是采用差分的思想,对 l~r 这一段整体+1,对差分数组而言,只需要 d[l]++,d[r + 1]-- 即可。最后对差分数组做一个前缀和即可还原为原数组,原数组的最大值就是 ans。 第二题:记 dp[i] 表示上一个站建设在位置 i 的最小花费,则 dp[i] 必然是从 dp[0]、dp[1]、...、dp[i - 1] 转移过来,由于 m 只有 1000,直接暴力枚举这些位置 j,然后转移是 dp[i] = min(dp[i], dp[j] + dis_sum[j + 1][i] + c[i])。 其中,dis_sum[l][r] 表示将 l~r 这一段的包裹都送到 r 的距离和,这个需要提前预处理,不然每次都算一遍复杂度会炸。 预处理的方法也简单,首先 dis_sum[i][i] 可以直接得到(定义为第 i-1 个站到第 i 个站之间的包裹全部送到 i 的距离和),其次 dis_sum[l][r] 可以从 dis_sum[l][r - 1] 转移过来,转移的时候只需要知道 l ~ r-1 这一段有多少包裹就行,记这个数量为 cnt,则 dis_sum[l][r] = dis_sum[l][r - 1] + cnt * (b[r] - b[r - 1]) + dis_sum[r][r]。其中 cnt 可以用前缀和预处理到 O(1)。 最后的答案从 dp[k] dp[k+1] ... dp[m] 中取最小值,其中 k 是比所有包裹都远的第一个位置。
5 回复 分享
发布于 08-09 18:26 北京
第一题直接拿哈希统计出现次数最多的题目会超时嘛?
点赞 回复 分享
发布于 08-14 16:03 山东
蹲蹲题解
点赞 回复 分享
发布于 08-11 11:58 北京
点赞 回复 分享
发布于 08-09 18:12 安徽

相关推荐

强度拉满了,连着干了2+h,累死了,而且和笔试连着,面完问答脑子一团浆糊,笔试就a了0.几个,估计是gg解释HTTP和HTTPS的区别具体说一下TLS握手的过程证书验证过程中,CA的作用是什么,CA本身被攻破会造成什么影响解释Java中的类加载机制,包括双亲委派模型和类加载器的种类双亲委派模型可以避免核心类被篡改,怎么设计一个核心类加载器,具体实现思路是什么双亲委派模型可以避免核心类被篡改,怎么设计一个类加载器,可以仿照tomcat,具体实现思路是什么在实现自定义类加载器的过程中,findclass和loadclass如何配合讲述数据库中常见的索引类型在高并发情况,既包含范围查询,又包含等值查询,如何选择查询方式如果选择了B+树索引,使用时发现查询性能不如预期,怎么诊断和优化如何设计一个用户注册和登陆系统,包括验证码步骤,描述设计和实现按步骤密码加密存储,具体选用哪种加密算法,为什么系统需要支持高并发场景,如何使用BCrypt以减轻对系统响应速度的影响描述一次你在过往项目中遇到问题的经历,描述问题、目标、结果面对这个问题中,你是怎么学习新技术的,比如消息队列、限流等,这些是你本来就会的还是在项目中临时学习的设计解决方案中,有多种因素和选择,在此过程中,你是怎么得知关键影响因素的介绍你印象最深的团队合作项目,你的职责是什么,你采取了哪些行为来应对如何协调团队成员之间的分歧,推进项目
查看18道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
6
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务