首页 > 贝壳找房 测试开发工程师 一二三面面经
头像
牛客74877437号
发布于 2022-09-18 20:19 重庆
+ 关注

贝壳找房 测试开发工程师 一二三面面经

一站式面试,一天面完,时间都在2022.9.17下午,面完当场知道结果(除三面外)
非常忍受不了的是到点后全部候选人进去排队,等特别久才轮到自己

一面:40min

  1. 自我介绍

  2. 一些个人情况的询问,包括社团、实习等,了解过贝壳吗

  3. 手撕:判断数组中所有的数字是否只出现一次

    给定一个个数字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");
         }
     }
    }
  4. Java八种数据类型有哪些,在内存哪个位置?

  5. 内存四大分区,分别存放什么

  6. 堆和栈的区别

  7. 进程和线程的区别

  8. 顺序表和链式表的区别

  9. TCP和UDP的区别

  10. Linux有关命令:查找文件所在目录、读取日志新的100行(tail)

  11. SQL手撕:user表,查参与活动最早(时间time)的前100人的姓名和手机号

    select name, tel
    from user
    order by time asc limit 100
  12. 内存泄漏有了解吗?

  13. 说说熟悉的排序算法,谁的时间复杂度最低

  14. 给一个手机设计测试用例,发挥想象

反问:

  1. 部门测试的情况:web、小程序、APP端都有
  2. 部门所使用的语言:Java、PHP
  3. 公司上下班时间:早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--];
        }
    }
}
  1. 手撕代码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);
        }
    }
}

反问:

  1. 部门测试框架和工具偏向什么类型

三面:10min

  1. 自我介绍
  2. 为什么不考虑做后端
  3. 是在求职实习之前就选择了测开吗
  4. 实习过程中有没有发现什么和学校不一样的地方
  5. 有考虑在现在实习的公司转正吗
  6. 实习中遇到的难点
  7. 有考虑考研吗
  8. 哪里人,对于未来就业地区如何考虑的,没有更倾向于老家这边吗
  9. 目前的工作节奏怎么样,有加班吗
  10. 之前了解过贝壳吗
  11. 目前还有其他进行着的工作机会吗

反问:

  1. 假如拿到offer后需要提前实习吗:看自己的安排,是接收大家提前实习的
  2. 这一面之后还会有其他的面试吗:无
  3. 什么时候出结果:两周内

更多模拟面试

全部评论

(5) 回帖
加载中...
话题 回帖