首页 > 拼多多服务端开发四面面经(9.22已oc)
头像
聊少少
编辑于 2020-09-22 12:50
+ 关注

拼多多服务端开发四面面经(9.22已oc)

赶在第一批尾巴投递的,过了几天就笔试了

笔试:2.0/4.0

拼多多一面

8.10 45min

给一个字符串str,将其转换为相应的long值,如果不是合法数字则返回null

问了下面试官,可能会非法,不会溢出

long long transType(String numStr) {
    if (numStr.empty()) return null;
    bool is_positive = true;
    int n = numStr.size();
    int i = 0;
    if (numStr[i] == '+') {
        is_positive = true;
        ++i;
    } else if (numStr[i] == '-') {
        is_positive = false;
        ++i;
    } else if (numStr[i] < '0' || numStr[i] > '9') {
        return null; // invalid
    }
    while (numStr[i] == '0') ++i; // remove prefix zero
    long long num = 0;
    while (i++ < n) {
        if (numStr[i] >= '0' && numStr[i] <= '9') {
            num = num*10 + (numStr[i] - '0');
        } else {
            return null;
        }
    }
    if (!is_positive) {
        num = -num;
    }
    return num;
}

topk(快速选择or最大堆,还说了为啥快速选择是On时间复杂度

海量数据topk(我答的是单机解法,最后把面试官搞得有点晕,最后直接把编程之美这本书搬出来了

两个很大的有序数组,求交集(先说了双指针,经过提示,如果交集稀疏可以用二分

有向图如何判定是否有环(我很心虚的说拓扑排序,但是展开讲的时候有点磕磕绊绊的

理想答案:方法是重复寻找一个入度为0的顶点,将该顶点从图中删除(即放进一个队列里存着,这个队列的顺序就是最后的拓扑排序),并将该结点及其所有的出边从图中删除(即该结点指向的结点的入度减1),最终若图中全为入度为1的点,则这些点至少组成一个回路。

腾讯实习巴拉巴拉

阿里实习,展开挺多的

拼多多二面

8.22 1h

聊实习

消息队列kafka,问了一些浅层的,如何持久化,消费了会不会删除消息,如何维护进度,深层我就不熟悉了,坦白在阿里实习时才接触,我写cpp的了解不深

问我熟悉哪种语言,我说c++,但面试官应该是写java的

c++多态怎么了解、虚函数是什么

友元函数是什么

为什么构造函数不能是虚函数,为什么析构函数得是虚函数

深拷贝与浅拷贝的区别

HTTP与HTTPS的区别,TLS的握手过程

epoll的LT与ET的区别

TCP可靠性如何保证(seq、ack、滑动窗口、拥塞控制

手撕:判断一个数是否是完全平方数

最快的是用一个公式:1+3+5+7+ ... + (2n-1) = n^2

class Solution
{
public:
    bool isPerfectSquare(int num) {
        int num1 = 1;
        while(num > 0) {
            num -= num1;
            num1 += 2;
        }
        return num == 0;
    }
};

也可以用二分法或牛顿法不断减小平方根的范围,最后判断离平方根最近的整数,其平方是否等于num来判断num是否是完全平方数

手撕:two sum

原来pdd的面试间是可以运行代码的,但是只能由面试官运行,这意味着报错原因是看不到的。。所以在写two sum时有很多小错误,比如忘记加某个头文件,漏掉某个分号,函数原型写错了,每次面试官都说你再仔细检查一下,这真的是考验肉眼观察能力了


过了几天收到了下一轮面试邮件,括弧里面就写了hr面,心想才两面就hr面了,太爽了吧

拼多多hr面

8.28 35min

自我介绍

还有其他offer吗

对各互联网大厂的评价

你更喜欢哪种企业氛围

为什么投递这个岗位

接受调剂

工作的地域偏好

怎么选择毕业后的第一份工作

你希望拿到什么样的薪资

了解拼多多的情况吗,你怎么看待11116,能接受11116吗

老家哪的,父亲母亲工作,国企还是私企,独生子吗

有女朋友吗

说说你受到的挫折

为啥入党

实习时有跟产品对接吗

如果项目需要delay你会怎么做

实习期间碰到的有挑战的事,你觉得有成就感的事

如果给offer,可以提前实习吗,最快啥时候正式入职


hr面完当天又收到下一轮面试的邮件,在牛客上看到挺多人也是这样的,这人数感觉也不是sp加面

拼多多四面

9.3 1h

聊两段实习,挺深入的,腾讯的有些回答不上来

后面聊到实习内容时,手撕了代码,输入两个队列,每个元素是带时间戳的消息,输出一个经过时间排序后的合并队列

面试没有复制自己写的代码,但是思路差不多,大致代码如下:


queue<pair<string, int>> mergeQueue(queue<pair<string, int>> q1, queue<pair<string, int>> q2) {
    queue<pair<string, int>> q;
    while (!q1.empty() && !q2.empty()) {
        while (!q1.empty() && q1.front().second < q2.front().second) {
            q.push(q1.front());
            q1.pop();
        }
        while (!q2.empty() && q1.front().second > q2.front().second) {
            q.push(q2.front());
            q2.pop();
        }
    }
    while (!q1.empty()) {
        q.push(q1.front());
        q1.pop();
    }
    while (!q2.empty()) {
        q.push(q2.front());
        q2.pop();
    }
    return q;
}



写完后,面试官问如果时间戳相等怎么办,我看着代码思考了一下说会死循环,然后讨论了一下时间戳能否相等,如果相等的话,用户的各个客户端要如何保证前后顺序一致等等问题

总之,都是围绕实习内容展开,没有问基础知识,还是要求有自己的思考的

最后反问环节,问了为什么hr面是三面,面试官说他也不知道,可能时间排的就是这样的


这几轮面试官都是不同组的,感觉应该是经过面试结果评估排序后再发offer,感觉这几轮面的还行(主要是手撕都过了),求拼多多的意向书



---

9.22oc,问了下有哪些offer和自己是否单身???


更多模拟面试

全部评论

(13) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐