微信面经(一二三面)

一面

  1. 一上来四道算法题

    1 有一个二叉树,每个节点的值是一个整数。写一个函数,判断这颗树中是否存在从根到叶子节点的一个路径,这个路径上所有节点之和为某一个值sumvalue。存在返回1,否则返回0。实现haspath函数 struct TreeNode { int value; TreeNode * left, * right; }; int haspath(TreeNode *root, int sumvalue) { }

    2 给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。 输入: S = "my_test_str", C = 't' 输出: [3,2,1,0,1,1,0,1,1,0,1] vector<int> shortestToChar(string S, char C)

    3 给定一个字符串,由字符"0"和"1"组成。 找到含有相同数量的"0"和"1"的最长子串的长度。如: 输入: 01001001 输出: 4 说明: 1001 是具有相同数量"0"和"1"的最长子串。 int findMaxLength(string s)

    4 给出一个整数N,求小于N的所有整数中,哪个数A的每个位上的数乘积最大。如:N=220,A=199,199=81;N=28,A=27,2*7=14 void GetMaxNum(int N, int & A)
  2. epoll 原理, LT、ET 区别
  3. http 报文怎么解析的

  4. 小根堆定时器怎么实现?如果是百万并发请求怎么实现呢?

  5. 说一下 raft,怎么选举,如果 leader 挂掉怎么办?

二面

算法题:

1.判断二叉树的同构,一棵树的任意节点的左右子树任意次交换后,能和另外一棵树相同,那这两颗树是b同构的

‌struct TreeNode {

int value;

TreeNode * left, * right;

};

 tree1:
     A 
   /   \
  D     C
 / \
F  E

tree2:
     B
   /   \
  C     D
       / \
      E   F 直接在下面编码 
  1. 使用数组,实现一个的循环队列(先进先出);不要增加额外全局变量


int data[10000];

int tail;

int head;

int pop(int * d); //取出来到d

int push(int d); // 把d存进去


2.1 要无锁支持并发(一个push线程、多个pop线程;单个生产者多个消费者)

提示:可以使用 cas 原子操作

bool succ = __sync_bool_compare_and_swap(*a, b, c)
{

if(*a ==b ){
    *a = c;
return true;

}else{

 return false;

}

} 直接在下面编码

3、在二叉排序树上面找出第N大的节点。注意:不能把二叉树全量存储到另外的存储空间,比如存储到数组中,然后取出数组的第三个元素。


struct TreeNode {

int value;

    TreeNode * left, * right;
}; 直接在下面编码


  1. 说一下 raft
  2. 忘了一部分。。。
  3. 一个思考题:一千万个用户qq号(每个 qq 号 4Byte),每个用户有 500 个好友,如果 A 是 B 的好友,那么 B 的好友列表中一定有 A,如果没有则视为脏数据,请问怎么找出来大概几万条脏数据(用户好友列表在远程服务器,每次只能 RPC 调用获得一个好友列表(4ms),2GB 内存,不能用磁盘存)怎么做?
  4. 如果每个列表只能请求一次呢?

三面

  1. 实现一个基于Hash的全内存LRU cache,对外提供key-value读写接口。插入时,发现节点个数超过阈值,则按照全局最近最少使用淘汰节点。采用链地址法解决Hash冲突:Hash桶个数固定为1千万,最多只能存储1亿个的节点,key和value都为uint32。请分别实现Set,Get接口。
  2. 工行有30万个员工,其工卡号码分别是1~30万,在接下来的某天他们将举行年会,需要抽出10万个员工发奖品。我们有一个随机数生成函数rand()能够生成0~65535的整数,请写一个公平的抽奖程序,输出这10万个员工的工卡号码。 注:直接在这里写代码
  3. 小根堆的时间复杂度
  4. raft 算法怎么判断数据是最新的
  5. http1.0 和 http2.0 的区别
#实习##面经##腾讯##C++工程师#
全部评论
这***的是找实习的难度?😅看得心凉了
4 回复 分享
发布于 2021-03-30 01:30
刚刚看了字节一面面经增强信心,好吧,看了这篇之后觉得自己还可以再学习学习。😂
3 回复 分享
发布于 2021-03-30 00:29
吓人。。。
点赞 回复 分享
发布于 2021-09-21 20:23
鬼鬼,这么顶
点赞 回复 分享
发布于 2021-07-22 22:38
哇,今天面挂了搜题才发现都是企业微信,都是一样的题。求问楼主三面第二题怎么做
点赞 回复 分享
发布于 2021-04-20 17:30
算法题分别都给了多长时间啊
点赞 回复 分享
发布于 2021-04-05 17:49
raft算法哪里看,zk用的zab,楼主简历是写了raft吗
点赞 回复 分享
发布于 2021-04-03 15:36
我今天一面三道题和你二面一模一样,都有思路,但做的不是很好,然后流程结束😭
点赞 回复 分享
发布于 2021-04-01 20:33
卷麻了
点赞 回复 分享
发布于 2021-03-30 13:08
上来甩四道算法题可还行
点赞 回复 分享
发布于 2021-03-30 00:05
好可怕
点赞 回复 分享
发布于 2021-03-29 23:22
这面试题都好猛
点赞 回复 分享
发布于 2021-03-29 22:26
楼主都做出来了?
点赞 回复 分享
发布于 2021-03-29 21:01
您好,请问您一面的四道题中 第一题,可以用普通的递归解决 第二题,应该是从左到右遍历,然后到从右到左遍历 第三题,应该是滑动窗口 第四题,有没有什么好的办法
点赞 回复 分享
发布于 2021-03-29 20:55
楼主是什么部门的
点赞 回复 分享
发布于 2021-03-29 20:14

相关推荐

人生一梦:24年我投暑期实习,它以我不是女的为理由拒绝了我查看图片
点赞 评论 收藏
分享
ResourceUtilization:我嘞个董事长
点赞 评论 收藏
分享
其实本来打算等lastday的时候再写的,但是现在提笔写下这篇总结完全是出于自己的想法,今天上午自己被学校发的签到吵醒时才突然想明白了很多事情,遂决定写下本文进行总结,虽然现在顶多算2.5个月,但也大差不差喵。回看这段时间的日常实习,我的关键词是:遗憾,焦虑。当然也有快乐的时候,不过大部分时间都是前面这两种情绪主导。为了避免后人再次踩坑,我将在本文详细解释我遇到的困难&nbsp;+&nbsp;产生的原因&nbsp;+&nbsp;应对的措施。同时总结新人实习时除了业务本身,还有如何处理生活与工作上的平衡,调控自身的情绪,让自己恢复到最好的工作状态。本文不会教你实习怎么去做产出,因为有产出的前提是你的心态足够健康,且在工作之余还有时间去...
wuwuwuoow:你的经历跟挺像,但我实力远没你强,现在只能干外包。但解决焦虑这块我应该比你更有经验,因为我曾经也非常迷茫和焦虑: 1.规律作息。无论节假日,都必须在同一时间点睡觉,同一时间点起床。放假睡的多,工作睡的少,这就是典型的作息不规律。将直接干扰前额叶皮层功能,导致情绪波动(易怒、焦虑)。无论上班还是周末,我都是 11:30 睡,7 点起床。7.5h 睡眠,完全足够了。 2.运动。缓解压力,强身健体,提高免疫力。不要觉得每天没有时间锻炼,都是懒惰的借口。 3.冥想。长期练习会增厚前额叶皮层(理性决策区),缩小杏仁核体积(减少情绪过敏反应,核心),增强情绪调控能力。 方法很简单,任何时候都能做。就是闭上眼睛,只专注自己的呼吸,不去想其他任何事情。你可以尝试一下,你会发现非常难只专注呼吸,会有大量的想法涌现出来(什么走马灯),不要去压抑它们,而是放平心态,把注意力继续放在呼吸上面。 而且最重要的是,冥想让你学会“活在当下”。因为处于冥想的你,除了专注呼吸你还能做什么呢?你什么都做不了。生活也是这样,我们无法改变过去,无法预知未来会发生什么,我们能做的只有手头的事情,除此之外什么都别想,因为你无法去改变它们。 4.工作与生活分离。工作不是生活的全部,生活可不是只有工作。像我放假的时候,从不带电脑回去。放假该玩就玩吧。 上面要是都能做到,其实完全解决不了你工作上的问题,完不成的需求还是完不成,面试该挂还是得挂。不过呢,当你再次迷茫,再次焦虑的时候,你会发现,诶,还好,没这么难受。比如面试挂了,可能以前的你会感觉非常难受。但如果你做到以上 4 点,你还是会难受的,但其实又没这么难受,可能你会这样想:既然挂了我还能怎么样?这公司不要我,有的是公司要我!
投递腾讯等公司6个岗位 >
点赞 评论 收藏
分享
评论
11
104
分享

创作者周榜

更多
牛客网
牛客企业服务