美团0813笔试

其实上周做了一次,只不过最后一题没有提交上去,所以这周重新做了一下。

5个编程题:

1、魔法外卖:大概意思就是输入n个订单以及派送每个订单所要消耗的时间t,再给定每个订单的截止时间。使用魔法是立即完成一个订单,问完成所有订单需要使用多少次魔法?

我是用优先队列做的,队列前面如果小于t就必须得用魔法了,计数输出一下就就行。

2、扫地机器人:模拟做一下就行,之前做科大讯飞有了经验,直接写个类重写hashcode和equals方法放进set里面就行

3、扑克:两个人一开始可以将牌堆顶部的牌放到底部,然后再翻开一个牌。输入是最后翻牌的结果,要还原本来的牌顺序。

我用普通队列模拟的,只过了80多。用双端队列应该可以AC

4、合法元数组:输入一个数组,问有多少个三元组(i,j,k)满足a[i] - a[j] = 2 * a[j] - a[k],其中i < j < k。

直接暴力枚举ijk可以过82%

移动的等式可以得到a[i] + a[k] = 3 * a[j],所以可以固定i遍历k,然后用map找j

long ans = 0;
for (int i = 0; i < n; i++) {
    int num = a[i];
    Map map = new HashMap();
    for (int j = i + 1; j < n; j++) {
        int c = a[j];
        int target = (num + c);
        ans += target % 3 == 0 ? map.getOrDefault(target / 3, 0) : 0;
        map.put(c, map.getOrDefault(c, 0) + 1);
    }
}
System.out.println(ans);

5、生活在树上:其实就是 lc 124 二叉树中的最大路径和 简化版本,甚至只需要考虑从根节点出发的情况,题目也明示了左右子树的关系,所以也不需要建树。

#美团笔试#
全部评论
楼主请问怎么重新笔试呢,能发个链接吗😭😭
点赞 回复 分享
发布于 2022-08-15 10:45
是和上周题一样吗?
点赞 回复 分享
发布于 2022-08-13 23:16

相关推荐

白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
3
9
分享

创作者周榜

更多
牛客网
牛客企业服务