1.围绕项目做自我介绍
2. 给30分钟做三道算法题下面展示一些 。
(1)二叉树中序遍历,使用非递归方式
import java.util.*;
class Main{
public static void main(String[] args) {
TreeNode node1=new TreeNode(1);
TreeNode node2=new TreeNode(2);
TreeNode node3=new TreeNode(3);
node1.left=node2;
node1.right=node3;
Main.Mid(node1);
}
public static void Mid(TreeNode head){
Stack<TreeNode> stack=new Stack<TreeNode>();
while(!stack.isEmpty()||head!=null){
if(head!=null){
stack.push(head);
head=head.left;
}else{
head=stack.pop();
System.out.print(head.value);
head=head.right;
}
}
}
}
class TreeNode{
TreeNode left;
TreeNode right;
int value;
TreeNode(int value){
this.value=value;
}
}
(2)给定一个无序数组,输出每个元素右边第一个比它大的元素
(3)两个有序数组,计算所有元素中位数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int []a=new int[]{1,3,4,5,6};
int []b=new int[]{2,5,6,7,8,10};
System.out.println(Main.mid(a,b));
}
public static double mid(int[]a,int []b){
int n=a.length;
int m=b.length;
int []c=new int[m+n];
int k=0;
int i=0,j=0;
while(i<n&&j<m){
if(a[i]<b[j]){
c[k]=a[i];
i++;
k++;
}else{
c[k]=b[j];
j++;
k++;
}
}
while(i<n){
c[k]=a[i];
i++;
k++;
}
while(j<m){
c[k]=b[j];
j++;
k++;
}
double r=0;
int sum=n+m;
if(sum%2==0){
r=(c[sum/2-1]+c[sum/2])*1.0/2;
}else{
r=c[sum/2];
}
return r;
}
}
(围绕项目讲得比较久,中间聊了一会锁)
3.讲一下你对epoll的了解。
4.TCP的4次挥手。
5.TCP如何实现可靠传输。
6.http和https的区别。
7.Mysql的隔离级别,相应的原理。
8.Redis的持久化原理aof和rdb(细到为什么会fork线程之类的)。
9.在16GB的内存大小中,Redis最多存多少数据。