字节测开12面面经

1、手撕代码:两个整数数组的重叠部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public int get(int num1, int num2) {
if (num1 == null || num2 == null) {
return new int[0];
}
Arrays.sort(num1);
Arrays.sort(num2);
List list = new ArrayList<>();
for (int i = 0; j = 0; i<nums1.length&&j<num2.length;) {
if (num1[i] < nums[j]) {
++i;
} else if (num1[1] > nums[j]) {
++j;
} else {
list.add(num1[i]);
++i;
++j;
}
}
int res = list.toArray(new int[list.size()]);
}

2、DNS
3、http、https
4、java和python的区别
5、为什么想做测试开发
6、测试网易云音乐的歌单
7、智力题
1个满满的水池有4个水阀,打开一个水阀,1个小时能流完,问如果有4个一摸一样、互相独立的水池,怎么操作能求出水池的水流完的最短时长
——emmm,没回答上来,面试官解释了好几遍我还是不动它的意思,欲哭无泪,说让我结束后再好好想想
8、我的优点缺点

复盘:上来就手撕着实让我倒吸一口冷气,好在写出来了,思路也讲了,但是程序没运行出来,面试官是个小姐姐,也没为难我,最后还说觉得你这个小姑娘有意思,这。。。竟无言以对,结束差不多3分钟,hr打电话约了二面,感动想哭/(ㄒoㄒ)/~~

二面
1、手撕:给定数组 [6,1,0,-1,0,2,3,-3,0,-2,0],求任意从中取出三个数有多少种取法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.*;
public class Main {
public static void main(String args) {
int nums = {6,1,0,-1,0,2,3,-3,0,-2,0};
System.out.println(cal(nums));
}
public static List<List> cal(int nums) {
List<List> ans = new ArrayList();
int count = 0;
int len = nums.length;
for (int i = 0; i< len; ++i) {
for (int j = 0; j<len; ++j) {
for (int k = 0; k<len; ++k) {
if (i == j || i ==k || j == k) {
continue;
}
if (nums[i]+nums[j]+nums[k] == 0){
ans.add(Arrays.asList(nums[i], nums[j], nums[k]));
count += 1;
}
}
}
}
return ans;
}
}
好难过,我一开始想用双指针,时间复杂度小一点,但是发现双指针会少很多结果,只能暴力,但是已经花了好长时间了,面试官不让我再再写了,好想哭,为啥不直接用暴力哇
java
1、代码里的count,在方法使用完后会怎么样
2、ArrayList和LinkedList的区别
3、和数组的区别——没回答上来
4、垃圾回收
5、进程间通信方式,区别 ——没回答上来
数据库
1、limit
2、order by
3、如何创建一个事务——没回答上来
linux
1、创建一个子进程——没回答上来
2、查看日志
思考题
有25匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前3名?

复盘:反正就是我太菜了,菜是原罪。而且能感觉到面试官后面急着回家的感觉,哎,好烦躁哦,表现的很不好
问的底层逻辑比较多,代码一开始没想好就写很浪费时间,可能要止步于此了

转发自:字节测开12面面经_牛客网