Zoom校招内推,第一轮面试已经开始抓紧机会,附zoom面经
废话不多说,重要的事情说三遍。内推链接,域名已经内嵌内推码,点击链接直接投递即可:https://dwz.cn/l3SpyLzJ , https://dwz.cn/l3SpyLzJ, https://dwz.cn/l3SpyLzJ
上一轮笔试的常见问题,文中搜集汇总了挺多,请继续往下看
【1】公司待遇如下:
【2】具体招聘计划说明如下:
1、招聘岗位
2. 招聘对象
本科及以上2023届毕业生,计算机、数学、电子信息、通信工程等满足岗位需求的理工科相关专业
*国内:2022年9月-2023年8月毕业生,国内以毕业证为准
*海外:2022年9月-2023年12月毕业生,中国港澳台及海外地区以学位证为准
3. 招聘流程网申/内推 — 笔试 — 面试 — Offer — 签约 — 入职(签约后可参与实习)
4. 招聘日程7月20日 网申启动
8月02日 空中宣讲会
8月18日 技术成长共探讨在线直播
9月01日 研发-前端专场在线直播
9月15日 研发-后端专场在线直播
9月28日 网申截止
08月中旬 开始线上面试
10月中旬 发放Offer&签约
*如遇日程调整,以最新通知为准
5. 笔试安排(调整),上一轮常见问题汇总,详情参考8月10日19:00 -西安、南京、合肥、武汉等
9月05日19:00 -成都、重庆、广州、深圳、长沙、哈尔滨等
9月20日19:00 -北京、上海、杭州、厦门、济南等
1)以上为建议的国内主要地区最佳笔试场次,海外将根据简历投递时间就近安排
2)每场考试前24小时停止创建笔试入口,如错过最佳场次将安排顺延(共3场)
3)如遇日程调整,以实际收到的笔试通知邮件为准
4)关于同学们担心笔试排期靠后, HC变少的情况说明:根据当前面试安排, 8月 10日和 9月 5日笔试的同学,面试基本上会在 9月 30日前全部完成。暂定正式带薪 Offer是在十一之后陆续发放,在此期间, 9月 29日笔试的同学也已经进入面试流程,发 Offer会根据面试情况综合评定,因此也不存在笔试安排靠后而缺 HC的情况。
5)笔试会刷掉一定比例的人吗?是的,笔试我们会根据各岗位的需求、同学们综合的笔试成绩进行筛选的。好好准备,期望有机会见面!
6)项目管理专员没有笔试嘛?嗯嗯,这个岗位是不安排笔试的,简历合适的话业务部门将直接进行面试沟通哦~
7)牛客申请编号是啥啊…申请延期但是不知道申请编号在哪里可以找到? 笔试的通知邮件里,担心大家找不到编号,因此在邮件里我特别都添加了编号信息的,就在正文最开始的两行里
8)投递的应用安全工程师,也不用笔试咯,之前状态是笔试待安排,现在变回简历待处理了,如果不笔试的话要等到什么时间才会有新进展呢?是的,安全工程师也不需要笔试,简历投递之后会反馈给业务部门查看,合适的简历将直接邀请安排面试沟通,目前正在陆续进行中
9)请问简历已被查看但一直简历初选状态是没有通过吗?如果是明确收到简历未通过的状态通知,是的。如果仅是查看了,但是依然在处理中,请耐心等候,校招简历量大,在陆续处理中。
10)请问笔试之后多久大概会安排面试呀? 这一场笔试之后一周左右,开始安排面试,然后,这一批笔试同学的整个面试周期将持续15个工作日左右,因此如果做最坏打算,那就是等面试要个3-4周,快的话1-2周
11) 请问一下,编程题是只能用笔试方向的语言回答嘛?不全是,笔试作答的时候,可以去点击选择语言,显示有可选的那就可以,有些方向是有限定的,比如C++/Java这些,有些是没有的。作答页面见
12) 8月4号投的Java 到现在还是待处理 是不是挂了呢?如果还没有收到明确淘汰的通知,那么就是还在筛选中,筛选是有这种淘汰的概率的。
13)请问c++服务器开发苏州是没有hc吗,为啥简介城市里有苏州,但是点进去可选城市没有苏州? 该岗位已经关闭啦。你可以看看有没有其他意向岗位。
面经帖子:部分参考这位大佬
面试参考:
前端:
- 2021-10-13 ZOOM前端笔经面经
-
2021-10-24 zoom前端 一二面 已意向
- 2022-07-17 Zoom 一面 (55 min) 已过
JS部分 es5到es6,有什么变化? 原型链,怎么不用instance of知道一个对象的类型。 正则表达式中的exce方法。 apply和call的区别。怎么用apply计算一个数组的最大值。 typeof和instanceof的区别。 怎么设置一个变量的默认值。 异步加载js文件的方法。 promise之前的异步方法有哪些(回调)。 undefined和null的区别。 HTML attribute和property的区别? cookie的属性 iframe标签的用途。 LocalStorage和SessionStorage的区别 document.getElementById这方法是不是效率最高的。 从输入url到页面上都发生了什么,如何渲染页面。 CSS ::before和::after伪元素可以干啥。 display:none和visitiby:hidden有什么区别。 CSS渲染是从左向右还是从右向左。 网络 跨域的常用方式。 XSS攻击和CSRF攻击的区别。 Linux命令 查看历史记录
客户端:
- 2021-10-15 Zoom苏州Android面经
- 2022-02-22 23届 合肥zoom ios/mac实习面经
测试:
- 2019-09-03 zoom自动化测试面经(1h)
- 2021-10-29 zoom测试面经
- 2021-11-11 zoom自动化测试面经
C++:
- 2019-09-10 Zoom,杭州,C++服务端
- 2019-09-19 一天四面(zoom,欢聚时代,cvte)
- 2021-08-13 zoom杭州 windows C/C++ 本科2年 社招面经
- 2022-02-22 23届 合肥zoom ios/mac实习面经
- 2022-04-02 zoom C++开发 苏州 (hr挂)
- 2022-05-07 zoom 面经(22春招)
-
zoom 一面(90min) 多态的实现,虚表及指向虚表指针的存储,类中指向虚表指针的个数,基类指针与子类指针指向同一对象值是否相等,指向虚表的指针是什么完成初始化的? 基类指针和子类指针的转换问题,是否了解static_cast及dynamic_cast的底层原理类继承时,成员变量和vptr是怎么存储的(好像是问存储顺序)? shared_ptr如何实现,引用计数如何实现的构造函数为什么不能是虚函数,构造函数能不能调用虚函数?如何区别大端机和小端机?STL用过么,讲一下vector,如何扩张? 拷贝构造函数和移动构造函数如何选择?map用过么?红黑树是绝对平衡二叉树么?什么情况下插入复杂度最坏?不用虚函数如何实现多态? C++如何禁止一个类被继承?线程的通信方式,同步方式,为什么要进行同步?系统是如何给线程分配一个栈的?代码:实现一个字符串类; 删除vector中重复的元素(双指针) zoom 二面(60min) 智能指针的实现const用法,define用法,适用场景及缺点new和malloc的区别C++11 新特性,模板的基本知识代码:将一个vector中的所有奇数放前面,所有偶数放后面?(双指针即可)C++有没有相应的库可以完成上面的操作(STL中的partition 或者sort+lambda都行) 实现字符串类(怎么总是考这个?)不过和第一次不一样,要写出移动构造函数,重载赋值运算符(两个,一个参数是对象,一个是右值引用) zoom 三面(30min) 没有技术问题了,针对简历问了一下大学参加的竞赛,对工作城市(杭州)的看法,有没有其他offer,对zoom的了解程度,然后hr详细介绍了一下zoom的产品就没了
Java:
- 2019-03-21 春招的第一个offer
- 2021-06-01 ZOOM JAVA实习面经
- 2021-09-28 Zoom java 已经OC
- 2021-10-12 zoom java一面 凉经
- 2021-11-09 zoom 一面 java后端 (已凉)
- 2022-03-17 Zoom 后端开发 日常实习面经 - HR挂
- 2022-03-17 java后端开发面经-多个公司
- 2022-03-22 zoom,阿里社招面经
- 2022-03-30 3.4 Zoom杭州Java开发面经 3.30 已offer
- 2022-03-31 Zoom 后端开发 校招面经
- 2022-04-01 zoom二面凉经
-
2022-05-13 ZOOM&米哈游一面凉面
-
视频面试问的比较深入,从项目经验到技术背景,考察基础知识和系统设计;也会做一些算法题; 线程池的参数?拒绝策略?如果corePoolSize+BlockingQueue.size()>maxiumPoolSize会怎么样? 知道哪些排序算法? 每个时间复杂度说一下,快排讲一下流程Redis单线程吗? 为什么这么设计? Redis的事务怎么处理的? 怎么保证事务之间互不影响? 数据库的ACID讲一下可重复读innodb怎么实现的? innodb有哪些索引?怎么建立的? Java的lock的底层实现?什么是意向锁? MyISAM比innodb好的地方在哪里?具体应用场景?为什么? 设计模式知道哪些?(单例模式,适配器模式,模板模式,装饰器模式,代理模式,工厂模式) 装饰器模式和代理模式本质区别是什么? TCP怎么保证是可靠的? 拥塞避免和流量控制怎么实现的? 具体讲一下Mybatis怎么使用事务? 在浏览器上输入网址,访问网页,分析整个过程XSS攻击知道吗?怎么防止? DDOS攻击实现原理?怎么防护?HTTPS的原理? 非对称加密和对称加密?(RSA,AES和证书的原理)画项目架构图,讲项目流程
1.spring的循环依赖2.mysql调优3.redis缓存,穿透。4.springclound的微服务原理,搭建以及应用。5.并发编程锁的,乐观锁,悲观锁。分布式锁。6.jvm调优,垃圾回收机制。7.二叉树搜索8.对go语言认识9.rpc调用原理。 -
.你为什么在大学没参加实习呢? 2. 重载和重写的区别? 回答扯到了重载的返回值类型不同不能重载 3. 可以有两个同名同参数函数,但是返回值类型不同吗? 不管是不是重载 (不会) 4. 你在项目中有遇到空指针异常吗?什么原因导致的(短路了) 5. list ,set map 简单介绍一下 6. list怎么直接转set(这里是有api的 当时也没说出来,非科班菜鸡没用过,也不知道他到底想问啥) 7. 过滤器和拦截器的区别?(emmm这个是因为论坛项目里 我写了拦截器,但是我不会过滤器) 8. bean加载的过程(不会,扯了bean的生命周期) 9. spring怎么解决循环依赖的(我服了,很久之前背过但是忘了 ) 10. 只说了三级缓存,然后问我每一级的作用,eMmmmm 赶紧结束把 11. es 增删数据,可能取不到的场景?(没听懂,es也不太会) 12.es可以放数据,mysql也可以放数据,你这里是如何划分的呢,依据是什么 13. 你的论坛注册模块是怎么实现的,详细说一下 14. 网站的安全问题是怎么考虑的(具体也没听懂,我就说没考虑到) 15. 无奈(.jpg)那你对网络的安全方面有哪些了解(说了syn攻击,https中间人) 16. 登录凭证分布式环境下怎么考虑的(放redis) 17. 那redis也需要集群模式啊,怎么管理的呢(redis集群一直没仔细看) 18. 你如果用缓存的话,数据的同步一致怎么考虑的
语音识别工程师:
- 2021-10-11 zoom 语音算法面经 已意向
- 2022-03-16 zoom 杭州语音岗面经
- 2022-05-21 zoom 语音识别工程师面经
笔试参考:zoom笔试,算法刷题大佬的算法笔记
各方向试题均由选择题+编程题构成 作答总时长为90min,开考后即进入倒计时模式 笔试通知将在开考前 1周,陆续以短信 +邮件的方式送达
单选: 给出ip和掩码,计算网络号 排序算法,各种的复杂度,稳定性,二分法比较次数 Java代码判断执行结果 图的基础知识 a = 2 | 24 ,这个原来是或运算啊,我当时没看出来,梦错答案了啊!! 多选: 排序问题 数据库引擎,日志。有道题问执行了delete后,执行下列那个语句磁盘不会删除 其他的忘了,有挺多不确定的算法题部分
第一题: 找132模式的匹配,有一个数组,找出遵循以下规则的个数,有下标索引i,j,k满足条件: i < j < k 并且 nums[i] < nums[k] < nums[j] 例子: [-1,3,2,0] 3 解释:满足条件的有[-1, 3, 2] [-1,3,0] [-1,2,0] 暴力解法: public class Solution1 { public int find132Pattern (int[] nums) { int len = nums.length; int count = 0; // 第一个数 for (int i = 0; i < len-2; i++) { // 第二个数 for (int j = i+1; j < len-1; j++) { // 第三个数 for (int k = j+1; k < len; k++) { if (nums[i] < nums[k] && nums[k] < nums[j]) { count++; } } } } return count; } public static void main(String[] args) { int[] nums = {-1, 3, 2, 0}; int res = new Solution1().find132Pattern(nums); System.out.println(res); } }
第二题 给你个数组,滑动窗口大小,滑动窗口步长。求每个窗口中最大值 例子: [1,3,-1,-3,5,3,6,7],3,2 [3, 5, 6 ,7] 解释:[1,3-1] 中最大值3,[-1,-3,5] 中最大值5,[5,3,6] 中最大值6,[6,7] 中最大值7 解法: import java.util.Arrays; public class Solution2 { public int[] slideWindow(int[] nums, int windowSize, int step) { int left = 0; int right = windowSize-1; int resLen = 0; // 如果是偶数 if (nums.length % 2 == 0) { resLen = nums.length / step; } else { // 如果是奇数 resLen = (nums.length+1)/step; } int[] res = new int[nums.length / step]; int resIndex = 0; while (left < nums.length) { findMax(nums, left, right,res,resIndex); left += step; right += step; resIndex++; } return res; } private void findMax(int[] nums, int left, int right, int[] res, int resIndex) { int max = Integer.MIN_VALUE; for (int i = left; i <= right; i++) { if (i == nums.length) { break; } max = Math.max(max, nums[i]); } res[resIndex] = max; } //[1,3,-1,-3,5,3,6,7],3,2 //[1,3,-1,-3,5,3,6,7],3,1 public static void main(String[] args) { int[] nums = {1,3,-1,-3,5,3,6,7}; int[] res = new Solution2().slideWindow(nums, 3, 2); System.out.println(Arrays.toString(res)); } }
🤩🤩🤩🤩🤩🤩8.10号笔试, 参考:
第一题
题目
给你一棵树,树上每个节点要么是红色要么是黑色,根节点为1。每个节点的权重值为根节点到该节点路径上红色节点个数和蓝色节点个数的差的绝对值。求所有节点权重值之和。 输入数据第一行是节点个数 第二行是每个节点的颜色 比如 RBR 然后N-1行是边的关系 比如 1 2 这样思路
建树,dfs模拟即可。
代码
import java.util.List; import java.util.Scanner; class ListNode{ long val; ListNode next; public ListNode(long val, ListNode next){ this.val = val; this.next = next; } } public class Q2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int root = 0; int n = sc.nextInt(); System.out.println(n); int color[] = new int[n]; ListNode[] Graph = new ListNode[n]; for (int i = 0; i < n; i++) { Graph[i] = new ListNode(0,null); } sc.nextLine(); String str = sc.nextLine(); System.out.println(str); for (int i = 0; i < n; i++) { if(str.charAt(i)=='R'){ color[i] = 1; } } for (int i = 0; i < n-1; i++) { int u = sc.nextInt()-1; int v = sc.nextInt()-1; insert(u,v,Graph); } int visited[] = new int[n]; dfs(root,visited,0,0,color,Graph); long ans = 0; for (int i = 0; i < n; i++) { ans+=Graph[i].val; } System.out.println(ans); } public static void insert(int u,int v,ListNode[] G){ ListNode vNode = new ListNode(v,G[u].next); G[u].next = vNode; ListNode uNode = new ListNode(u,G[v].next); G[v].next = uNode; } public static void dfs(int root,int[] visited,int red,int blue,int color[],ListNode[] G){ visited[root] = 1; if(color[root]==1) red++; else blue++; G[root].val = Math.abs(red-blue); ListNode p = G[root].next; while(p!=null){ if(visited[(int)p.val]!=1){ dfs((int)p.val,visited,red,blue,color,G); } p = p.next; } visited[root] = 0; } }
第二题
题目
股票推荐系统。每个用户可能关注几个公司,比如A,B,C,如果有另一个用户只关注了A,那么就会给他推荐B,C。这时候如果来了一个用户关注C,D,那么后来关注C的用户,都会推荐A,B,关注A的用户都会推荐BCD。 在有上面的关系后,求用户查询的时候,会给它推荐的公司的个数。 第一行给出命令的个数 然后每一行 如果第一个数字是1,代表注册,然后第二个参数是用户名字,第三个参数是用户关注的公司的个数。下一行则是用户关注的公司的名字。 如果第一个数字是2,代表查询,返回会给该用户推荐的公司数量,如果该用户没注册,则返回error思路
并查集模拟
代码
import java.util.*; class UnionSet{ List<Integer> parent; List<Integer> cnt; List<String> company; HashMap<String,Integer> companyMap; public UnionSet(){ parent = new ArrayList<>(); cnt = new ArrayList<>(); company = new ArrayList<>(); companyMap = new HashMap<>(); } public void addCompany(String companyName){ if(companyMap.containsKey(companyName)){ return; } cnt.add(1); parent.add(cnt.size()-1); company.add(companyName); companyMap.put(companyName,company.size()-1); } public void union(String u,String v){ int ufather = getParent(u); int vfather = getParent(v); if(ufather == vfather) return; if(cnt.get(ufather)>cnt.get(vfather)){ parent.set(vfather,ufather); cnt.set(ufather,cnt.get(ufather)+cnt.get(vfather)); } else{ parent.set(ufather,vfather); cnt.set(vfather,cnt.get(ufather)+cnt.get(vfather)); } } public int getParent(String cName){ int idx = companyMap.get(cName); while(parent.get(idx)!=idx){ parent.set(idx,parent.get(idx)); idx = parent.get(idx); } return idx; } public Set<String> getSetsByCompanies(int u){ Set<String> sets = new HashSet<>(); for (int i = 0; i < company.size(); i++) { if(getParent(company.get(i))==u){ sets.add(company.get(i)); } } return sets; } } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); HashMap<String,String[]> person = new HashMap<>(); UnionSet us = new UnionSet(); int ops = sc.nextInt(); sc.nextLine(); for (int i = 0; i < ops; i++) { String command = sc.nextLine(); String commands[] = command.split(" "); String name = commands[1]; if(commands[0].equals("1")){ if(person.containsKey(name)){ System.out.println("error"); continue; } String companyStr = sc.nextLine(); String[] companies = companyStr.split(" "); for (int j = 0; j < companies.length; j++) { us.addCompany(companies[j]); if(j>0){ us.union(companies[j],companies[j-1]); } } person.put(name,companies); } else{ if(person.containsKey(name)){ int p = us.getParent(person.get(name)[0]); Set<String> sets = us.getSetsByCompanies(p); System.out.println(sets.size()-person.get(name).length); } else{ System.out.println("error"); } } } } }
其它有用面经