#拼多多集团-PDD笔试#我是菜鸡。4道题一道都没有全对,0.95  0.4  0.975  0.95  与大厂无缘了
不愧是拼都督,笔试都能感觉到卷了
--------
第二题的屎山代码
import java.util.*;
import java.io.*;
public class Main{
    public static void main(String[] args) throws InterruptedException {
        Scanner sc=new Scanner(new BufferedInputStream(System.in));
        PrintWriter out=new PrintWriter(new BufferedOutputStream(System.out));
        int L=sc.nextInt(),C=sc.nextInt(),n=sc.nextInt();
        int[]ds=new int[n+1];
        int[]ps=new int[n+1];
        for(int i=0;i<n;i++){
            ds[i]=sc.nextInt();
            ps[i]=sc.nextInt();
        }
        ds[n]=L;
        ArrayDeque<Integer>w=new ArrayDeque<>();
        int next=C;
        int start=-1;
        int startC=C;
        long cost=0;
        boolean stop=false;
        for(int i=0;i<=n;i++){
            if(next>=ds[i]){
                while(!w.isEmpty()&&ps[w.getLast()]>=ps[i])w.removeLast();
                w.addLast(i);
            }else{
                int need=ds[i]-next;
                while(!w.isEmpty()&&need>0){
                    int idx=w.getFirst();
                    int space=(C-startC)+(ds[idx]-(start==-1?0:ds[start]));
                    // 可以加的油=邮箱中剩余的空间=起点时邮箱不满的空间+从起点走到这里花的油
                    if(space<=need){
                        need-=space;
                        next+=space;
                        cost+=(long)space*ps[idx];
                        startC=C;
                        start=idx;
                        w.removeFirst();
                    }else{
                        start=idx;
                        startC=C-space+need;
                        next+=need;
                        cost+=(long)need*ps[idx];
                        need=0;
                    }
                }
                if(need>0){
                    stop=true;
                    break;
                }
                i--; // 这时候反悔加了油,但是当前的i处的加油站还没有加进来,再来一轮
            }
        }
        if(stop)out.println(-1);
        else out.println(cost);
        out.flush();
        out.close();
        sc.close();
    }
}

只记得样例1了
20 10 3
4 5
9 2
15 6
输出为24
全部评论
不知道你们怎么做的,我前两道题都自定义了一个类然后实现了comparable,一写出这个就感觉特别清晰了,前两题全ac,后面两道题感觉是贪心,二分,前缀和的经典运用
1 回复 分享
发布于 昨天 18:46 重庆
你这不是稳了吗?
1 回复 分享
发布于 昨天 17:20 浙江
同学我前几天投的简历,这个笔试一般是怎么约的啊?我现在只做了一个性格测试,但是一直没有笔试邀请发过来,流程显示在笔试中😭
点赞 回复 分享
发布于 昨天 21:50 湖南
兄弟你这已经相当于a了三道半了,真不是凡尔赛吗
点赞 回复 分享
发布于 昨天 17:05 天津

相关推荐

昨天 17:01
门头沟学院 Java
程序员大奋:不好意思,打扰大家🙏我是一个拼多多骑手,小电驴的最大电量为C😭😭😭需要从x=0处走到x=L处,途中有n个充电站,🙏🙏每个充电站的距离和电价分别为di和pi,初始电量是满的😭😭😭请告诉我到达终点最少要花多少钱😭😭😭求求大家把这些钱转给我
拼多多集团-PDD笔试
点赞 评论 收藏
分享
03-13 00:04
已编辑
吉林大学 Java
约面的挺突然。。狠下心接了1.自我介绍2.讲讲JAVA的反射3.可以继续讲讲AOP,动态代理[&nbsp;因为讲反射不小心吟唱到了例如AOP的动态代理,但是这块记忆的非常不熟,结果磕磕绊绊&nbsp;]4.项目我看你写了AOP和注解,具体怎么实现滑动窗口限流的[&nbsp;梦到什么说什么,吟唱八股发散千万不要散到自己不熟悉的区域&nbsp;]5.也讲讲为什么另一个项目选择令牌桶,具体流程6.&nbsp;OK,讲讲&nbsp;Redis&nbsp;的数据类型?还有吗?就了解这五种嘛[&nbsp;把5个的基础类型从应用对比到历届底层全都吟唱了一遍。一句还有吗直接没力气了,简历就写了理解5种,别的我是真一点没看TT&nbsp;]7.讲讲Redission分布式锁实现8.这个指数退避怎么实现的9.在这里有考虑去保障幂等性嘛10.这里为什么使用指数退避呢?&nbsp;什么时候用均匀重传[已经晕过去了说不了解,刚说了后就意识到,估计应该说指数退避能缓解压力防止下游服务器雪崩之类的]11.ok,那讲讲JMM12.讲讲RocketMQ如何保证的不丢消息13.讲讲RocketMQ延迟消息原理14.讲讲项目Redis实现会话记忆这一块15.如果ai调用function&nbsp;calling出现幻觉,有考虑怎么解决吗?[&nbsp;不了解,面试官说什么接口幂等化,高危操作人工防护,没在听,感觉人已经飞升了TT&nbsp;]16.mcp了解嘛?和function&nbsp;calling有什么区别[&nbsp;依旧不了解,只能说了个前者规范架构抽象解耦,后者耦合高只能算个工具调用]17.AI生成代码的代码质量怎么保障,那平时如何review的呢18.算法。lc215&nbsp;&nbsp;数组中最大第k个元素19.打算考研还是本科就业20.反问1️⃣有哪里不足,有哪些需要提高的部分。[主要说知识广度不够,多刷算法,让我别太紧张]2️⃣部门业务会做什么人生第二次面试。感觉大厂面试官的气场压力很大应该凉了不过这次面试非常锻炼心态,多面试,多面试。
冰炸橙汁_不做oj版:redis除了五种基本数据类型,其他的几种还是要掌握一下的,挺常用
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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