腾讯WXG后端一面面经

WXG果真名不虚传。。一面就面了两小时 当然也可能是因为我菜🤣

上来打完招呼就直接先做5道题
1.两个字符串A,B,将所有同时存在于A,B中的字母从A中剔除(HashMap)
2.一棵二叉树,判断是否存在从根到叶子节点的路径,使得路径各节点值之和等于给定值(DFS)
3.一个矩阵,按行递增,按列递增,判断一个数是否存在于该矩阵中(剑指offer原题)
4.求比整数N小的所有正整数中,各位数字乘积最大者,如输入220,返回199(没做出来,好像其他腾讯面经里也有这道题,据说也是剑指offer原题)
5.在N*N矩阵上随机取三个点A,B,C,用多段横线、竖线将它们连起来,要求各线段长度之和最短
(我想到可以平移成max(x)-min(x) + max(y)-min(y),照着往下推就好)


海量数据题:100亿个整型数据(面试官提示,100亿不重要,反正很多),乱序,100M内存,无外存(也就是不能写入到文件),求中位数
我提出用HashMap,面试官补充说没有硬盘
我提出用BitMap,面试官说100亿个你装不下的
他提示我,怎么用多轮处理,找到它大概的范围,我没get到
最后他又提示,可以二分,整型上限40亿,可以统计0~20亿,和20亿到40亿的个数,然后每次排除掉一半,但是太慢,怎么继续优化
我说N分,他说那N是多少?划分出来的区间,最小能是多少?
我说一个字节对应一个区间,但是很快发现最坏情况下,一个字节装不下
挖到这里没有继续往下挖了,面试官说反正到了这一步就是怎么分配单个区间大小的问题

开始问基础:
操作系统:
1.什么是线程安全?
2.操作系统层面,如何保证线程安全?说了锁和信号量,还有呢?
3.了解协程吗?你平时写一个程序,是多线程还是多进程?为什么不用多进程?
4.什么是内存碎片?如何解决?

数据结构:
1.Java Map有哪些实现?HashMap底层是什么数据结构,有什么好处,什么缺点?TreeMap底层是什么数据结构,有什么好处?
2.哈希表有哪些解决冲突的方案?(讲了开放寻址、链地址、二次散列)

网络:
1.四次挥手为什么是四次,不是三次
2.记不太清了,大概是问TCP绑定端口写网络编程的时候,是用select,poll,还是epoll

项目:
挑一个介绍,背景,亮点?
如果用户下订单的时候,后台已经写入数据,但是随即用户断网了,丢包,如何避免用户以为下单没成功,再下一个重复的单?

希望能有二面。。
#腾讯##实习##Java工程师##面经#
全部评论
上来就五题太刺激了吧!
3 回复 分享
发布于 2020-03-17 00:50
做题是记事本上写还是在线提交
1 回复 分享
发布于 2020-03-17 17:29
是用牛客面的吗,写题是怎样的操作
1 回复 分享
发布于 2020-03-17 19:32
厉害!也碰到了类似海量数据题
点赞 回复 分享
发布于 2020-03-16 22:43
有人帮忙解释一下 “TCP绑定端口写网络编程的时候,是用select,poll,还是epoll ” 吗?
点赞 回复 分享
发布于 2020-03-17 08:43
实习好好面,没有面委,进去比校招简单多了
点赞 回复 分享
发布于 2020-03-17 12:39
wxg也招java嘛
点赞 回复 分享
发布于 2020-03-17 15:24
请问最后项目问答的丢包问题怎么解决呢
点赞 回复 分享
发布于 2020-03-17 15:55
是哪个部门哇
点赞 回复 分享
发布于 2020-03-17 18:07
想问一下楼主你都做出来了吗?
点赞 回复 分享
发布于 2020-03-17 18:22
感谢老哥的面经,我也差不多,第一次面这么长,不像之前半小时以内保准结束。。。。😂
点赞 回复 分享
发布于 2020-03-17 21:30
这五道题倒是蛮简单的,作为没项目没基础只会刷题的ACMer,反而希望直接把各种编程题怼我脸上,现在狂补基础中。。。😔
点赞 回复 分享
发布于 2020-03-17 22:08
真大佬,不敢想WXG
点赞 回复 分享
发布于 2020-03-18 16:33
算法题4.的答案 感谢楼主的面经 public class bitsumMax {     public static int bitmulti(int n ){         if (n<=0) return -1;         int result = 1;         while (n!=0){             result = result*(n%10);             n = n/10;         }         return result;     }     public static int findmax(int num){         int max = 0;         List<Integer> list = new ArrayList<>();         for (int i =0;i<=num;i++){             int temp = bitmulti(i);             if (temp>=max){                 max = temp;             }         }         for (int i = 0;i<=num;i++){             if (bitmulti(i)==max){                 list.add(i);             }         }        int[] result = new int[list.size()];         for (int j = 0;j<result.length;j++){             result[j] = list.get(j);         }         Arrays.sort(result);         return result[result.length-1];     }     public static void main(String[] args){          System.out.println(findmax(202));     } }
点赞 回复 分享
发布于 2020-03-19 00:09
Wxg面过三面,每一面都是上来3到编程题
点赞 回复 分享
发布于 2020-03-19 00:53
老哥,感觉你的面试官跟我的是同一个。。。题目差不多。
点赞 回复 分享
发布于 2020-03-25 22:34
冒昧问一句 楼主是研究生吗?😁
点赞 回复 分享
发布于 2020-03-28 23:31
话说,200亿数据,内存小,没硬盘,这数据本身放在哪里的?
点赞 回复 分享
发布于 2020-03-28 23:53
请问大佬一面后多久变为复试状态啊
点赞 回复 分享
发布于 2020-03-30 22:25
太恐怖了吧
点赞 回复 分享
发布于 11-06 22:36 广东

相关推荐

潮州肠粉小孙:最近和组里的人开始熟起来,现在问别人没有什么心理包袱了,走过去直接狗叫,从哥叫到爷。再叫到神我组长感觉挺喜欢我的,可能我比较抽象吧,没事到处找别人聊天
点赞 评论 收藏
分享
18 193 评论
分享
牛客网
牛客企业服务