阿里巴巴 秋招 钉钉 C++ 诡异的二面面经(凉)

基本信息

  • 岗位:钉钉团队C++研发
  • Base:杭州

面试信息

  • 形式:钉钉视频通话+伯乐系统写题
  • 时间:8.5

面试问题

  • 聊天:自我介绍,项目介绍,技术栈,为什么没实习,优缺点,岗位意向
  • 设计模式
  • 介绍一下常见的开发语言
  • 写题(最诡异的来了):先出了一道字符串按单词反转,我说一面写的就是这个题,他说不是啊,然后说看看,似乎才第一次打开一面报告;然后调出代码,问我为什么用栈,我说从写的方便和时间复杂度考虑(存在连续多个分隔符,原址反转的删除要移动后面所有内容),不借助栈也可以写一个从后往前扫直接加入的,又问了多个连续分隔符的处理逻辑。然后感觉面试官这时候就不太高兴,说,那我们再写一题,出了道链表反转(给定 Node* reverse(Node* root) ),写完说,具体逻辑我就不看了,我看到你new了新节点,为什么没有delete,我:???因为给定返回Node*,就是要创建新链表返回,原链表可能还有用,不应当释放,应该在函数外处理,当然如果需要原址反转也可以写,需要写吗?面试官说,不用了,那如果传入一个空节点,你的代码会有什么问题?我说处理过了,没问题,就返回nullptr。他说,那你这个执行一百万次不会导致内存占满吗?我说,这个算法本身就是不断创建新的,当然会,如果您需要写原址反转的话也可以写。他说,嗯,异常处理用过吗,你的代码会不会出问题执行到哪一行突然终止?我说,这个算法还是比较健壮的,正常情况下不会。然后写题就结束了。
  • 最后一个问题:如果一个非析构函数写了delete this会怎么样,我说没有遇到过,但是直觉是运行完以后再尝试访问这个实例的成员可能报错(后来查了下确实是)

结果

  • 面完一周后没有任何说法
  • 钉钉问了下HR,第二天(8.12)收到感谢信

总结

  • 参加的7.31的那场笔试,A1.9/2,感觉还可以(那场似乎还蛮难的),然后一面面试官很满意,还和我介绍了半天他们的部门,让我收到其他offer先慎重考虑,他们这里发展前景很好,然后二面整个过程就感觉非常奇怪(基本没有技术问题,不知道面试官到底想了解些什么,写题这个过程讨论地也非常诡异,把一个算法题聊得像工程一样),最后果然还是挂了QAQ
#面经##校招##C++工程师#
全部评论
不是,链表反转这个题,向来都是在原链表上进行反转吧,返回反转之后的链表头啊 你对于每个节点都new一个新节点的话,那这个题就没啥挑战了啊,而且那应该叫"复制一个反转的链表",而不是“反转一个链表”了
1 回复
分享
发布于 2020-08-17 22:21
刷kpi?
点赞 回复
分享
发布于 2020-08-13 12:54
联想
校招火热招聘中
官网直投
我们这好多这样的都炸了
点赞 回复
分享
发布于 2020-08-13 17:03
问一下你一面面试官是谁?
点赞 回复
分享
发布于 2020-08-13 17:23
其实,他让你做了一道一面做过的题,你为啥要反驳呢,做过了不好吗😂
点赞 回复
分享
发布于 2020-08-19 16:14
麻烦问下您,二面挂了以后是直接跟您说二面挂了吗?还是让您继续参加hr面然后最后挂您呢😂
点赞 回复
分享
发布于 2022-03-18 23:30

相关推荐

第一题,直接把所有年龄的情况列举出来第二题,动态规划int main() {    int a, b;    // 全选    // 选择单个    // 复制所选    // 粘贴所复制的文本    int T; cin>>T;    int maxOP = 0;    vector OP(T, 0);    for(int i=0;i cin>>OP[i];        maxOP = max(maxOP, OP[i]);    }    vector dp(maxOP + 10, INT_MAX);    dp[1] = 0;    dp[2] = 3;    //dp[8] = 8;    // dp[9] = 10;    // dp[9] = 4 + 3 + 1 (3 + 3 + 3)    // 1 = 0    // 2 = 3    // 3 = 4    // 4 =    for(int i=3;i        for(int j=2;j            if(i % j == 0) dp[i] = min(dp[i],  dp[j] + (i/j)+1); //如果第j是第i的倍数,可以累计(i/j)个i            dp[i] = min(dp[i], dp[j] + (i-j) + 2); //这个后面才想到,必须要加这个,这个表示第i个可以使用单个复制粘贴到第j个        }        dp[i] = min(dp[i], 1 + i); //第i个使用1个来解决    }    for(int i=0;i        cout    }}第三题,没想到暴力也能过,直接暴力贪心,选取最大没访问过的房间攻击或者直接加当前战斗力的1/10,暴力就可以。第四题,模拟永杰无间,题目太长,就是模拟题,没写直接交卷了。
投递网易雷火等公司7个岗位
点赞 评论 收藏
转发
3 16 评论
分享
牛客网
牛客企业服务