WXG微信支付一面(Java)
1.自我介绍
2.简单的项目介绍(功能)
(1+2 10min左右)
3.算法(50min)
1)二选一
a.1、给你一个 m 行n列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素
示例 1:
1 2 3
4 5 6
7 8 9
1->2->3->6->9->8->7->4->5
输入:matrix =[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]
示例 2:
输入:matrix =[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]
提示:
m == matrix.ength
n == matrix[i].length
b.(已选)
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。
但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。
没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
(要求实现的时间复杂度为O(N),例如输入100,那时间复杂度应该是100级别的)
示例 1:
输入:target = 9
输出:[[2,3,4],[4,5]]
示例 2:
输入:target = 15
输出:[[1,2,3,4,5],[4,5,6],[7,8]]
2)二选一
a.(已选)
用拉链法实现hashTable
接口:插入,查找,删除
hash函数可以不实现
要求要手写链表实现
b.
实现一个大根堆,两个过程:
a、构建堆
b、弹出堆顶数据
问八股(30min左右)
4.说说常见的排序算法及其时间复杂度
5.hash冲突的解决方法有哪些(不全)
6.红黑树的理解及常见应用场景(不全)
7.tcp的四次挥手
8.四次挥手中客户端的time_wait在哪个阶段
9.time_wait过多怎么优化
10.udp和tcp的区别及udp的优势
11.tcp的活动窗口机制(不会)
12.netty的原理和特点
13.netty用的哪种I/O模型
14.select、poll和epoll的区别
15.常见的进程间通信方式
16.了解协程吗(轻量级的用户线程)
17.进程和线程的区别
18.项目难点
19.项目中怎么解决缓存穿透的
20.redis的原子性的操作或命令有哪些
21.项目怎么来的,参与了哪些模块的开发
22.反问
PS:应该过了,官网还在流程中,但是一直没收到二面邀请。