贝壳找房 测试开发工程师 一二三面面经
一站式面试,一天面完,时间都在2022.9.17下午,面完当场知道结果(除三面外)
非常忍受不了的是到点后全部候选人进去排队,等特别久才轮到自己
一面:40min
自我介绍
一些个人情况的询问,包括社团、实习等,了解过贝壳吗
手撕:判断数组中所有的数字是否只出现一次
给定一个个数字arr,判断数组arr中是否所有的数字都只出现过一次。
输入描述:输入包括两行,第一行一个整数n(1≤n≤10^5),代表数组arr的长度。第二行包括n个整数,代表数组arr(1≤arr[i]≤10^7)。
输出描述:如果arr中所有数字都只出现一次,输出“YES”,否则输出“NO”。import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; sc.nextLine(); for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } HashSet<Integer> set = new HashSet<>(); for (int i = 0; i < n; i++) { if (!set.isEmpty() && set.contains(arr[i])) { set.remove(arr[i]); } else { set.add(arr[i]); } } if (set.size() != arr.length) { System.out.print("NO"); } else { System.out.print("YES"); } } }Java八种数据类型有哪些,在内存哪个位置?
内存四大分区,分别存放什么
堆和栈的区别
进程和线程的区别
顺序表和链式表的区别
TCP和UDP的区别
Linux有关命令:查找文件所在目录、读取日志新的100行(tail)
SQL手撕:user表,查参与活动最早(时间time)的前100人的姓名和手机号
select name, tel from user order by time asc limit 100
内存泄漏有了解吗?
说说熟悉的排序算法,谁的时间复杂度最低
给一个手机设计测试用例,发挥想象
反问:
- 部门测试的情况:web、小程序、APP端都有
- 部门所使用的语言:Java、PHP
- 公司上下班时间:早10点半-晚7点
二面:50min
1.自我介绍
2. 挖实习、项目:具体内容、BUG如何发现与解决、对BUG定级等;测试用例条数、怎样实现的、难点等;
3. 手撕代码1:合并两个有序的数组
给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组
数据范围: 0≤n,m≤100,∣Ai∣<=100,∣Bi∣<=100
注意:
1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n
2.不要返回合并的数组,将数组 B 的数据合并到 A 里面就好了,且后台会自动将合并后的数组 A 的内容打印出来,所以也不需要自己打印
3. A 数组在[0,m-1]的范围也是有序的
import java.util.*;
public class Solution {
public void merge(int A[], int m, int B[], int n) {
int a = m - 1;
int b = n - 1;
int index = m + n - 1;
// m >= n
while (a >= 0 && b >= 0) {
if (A[a] > B[b]) {
A[index--] = A[a--];
} else {
A[index--] = B[b--];
}
}
// m < n
while (b >= 0) {
A[index--] = B[b--];
}
}
}- 手撕代码2:括号生成
给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。
例如,给出n=3,解集为:
"((()))", "(()())", "(())()", "()()()", "()(())"
数据范围:0≤n≤10
要求:空间复杂度O(n),时间复杂度O(2^n)
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return string字符串ArrayList
*/
public ArrayList<String> generateParenthesis (int n) {
// write code here
ArrayList<String> res = new ArrayList<>();
if (n == 0) {
return res;
}
dfs(n, 0, 0, "", res);
return res;
}
public void dfs (int n, int left, int right, String s, ArrayList<String> res) {
if (left > n || right > n) {
return;
}
if (left == n && right == n) {
res.add(s);
}
if (left >= right) {
String temp = new String(s);
dfs(n, left + 1, right, s + "(", res);
dfs(n, left, right + 1, temp + ")", res);
}
}
}反问:
- 部门测试框架和工具偏向什么类型
三面:10min
- 自我介绍
- 为什么不考虑做后端
- 是在求职实习之前就选择了测开吗
- 实习过程中有没有发现什么和学校不一样的地方
- 有考虑在现在实习的公司转正吗
- 实习中遇到的难点
- 有考虑考研吗
- 哪里人,对于未来就业地区如何考虑的,没有更倾向于老家这边吗
- 目前的工作节奏怎么样,有加班吗
- 之前了解过贝壳吗
- 目前还有其他进行着的工作机会吗
反问:
- 假如拿到offer后需要提前实习吗:看自己的安排,是接收大家提前实习的
- 这一面之后还会有其他的面试吗:无
- 什么时候出结果:两周内

