时间线
2021-7-25一面 , 2021-2021-8-1二面。都在周日加班。
感觉体验好,很规范。
总的来说,提前批的难度我怎么感觉比实习还简单一些...
一面(重视基础知识)
2021-7-25下午
虾皮一面
一面只问八股和做算法.不问项目
mysql
1.b+相对于b树的优势
2.聚簇和普通的区别
3.现实业务避免二次查找的情况
4.主键索引和聚簇索引的区别?
5.expalin命令的表里面的字段有哪些
消息队列
1.消息队列最近使用过吗?
2.消息队列的三个作用
3.消息队列的消息不重复。
4.发送方的重复发送?
5.消息不丢失怎么保证,宕机?
6. 消息队列发送了ack,但是宕机了
7.消息队列的使用场景
操作系统
1.top命令知道什么(不知道,不问了,就开始写题了..)
算法题
链表反转
反转链表的偶数位置,并返回该链表
例如
1 9 3 4 7 8
其中偶数位置的是
9 4 8
反转得到 8 4 9
奇数的位置是
1 3 7
最后的返回结果为
1 8 3 4 7 9 .
二面
自我介绍
项目相关(你们看不懂的问题可能是项目的问题,不要在意)
1.实习的项目和你自己的项目的不同
2.怎么快速适应的
3.怎么快速进入项目
4.怎么快速解决你的任务
5.你的r2解决方案
6.怎么保证你的数据长度和实际长度一致
7.你的方案的好处在哪?
8.你的方案是等测试,才知道新方案的优势吗
9.自己的工程你会选择什么方案
10.rpc框架你做这个的目的干什么?
11.你有调研grpc吗?
12.你的rpc有什么特色吗?
13.你的rpc有安全性吗?
14.什么是安全性?
15.负载均衡各个算法的优缺点?使用场景
我们来做题吧给你20min
算法
两数之和
详细描述
给定一个list和整数num,求list中两个数的和为num的下标,同一个数字只能使用一次。
输入输出描述
输入描述
list = [1,2,2,3,3,4,5]
num =6
输出描述
0,6 1,5 3,4
or 0,6 2,5 3,4
---我的答案
/** @author 杀死大白鹿 **/ import java.util.*; public class Main{ static ArrayList<int[]> res =new ArrayList(); ; public static ArrayList<int[]> getIndex(int []arr ,int sum){ if(arr==null || arr.length <=0){ return res; } Arrays.sort(arr); int len = arr.length; int left = 0,right = len-1; while(left < right){ // 找到一组,加入结果集合,继续遍历 if(arr[left] +arr[right] == sum){ int []temp = {left,right}; res.add(temp); left++;right--; } // 小于的话,left++ else if(arr[left] +arr[right] < sum){ left++; } //大于的话 right-- else if(arr[left] +arr[right] > sum){ right--; } } return res; } //1448 public static void main(String[] args){ int []arr =new int[]{1,2,2,3,3,4,5}; int num = 6; ArrayList<int[]> result = getIndex(arr,num); for(int[] resTemp : result){ System.out.println(Arrays.toString(resTemp)); } } }
全部评论
(12) 回帖