网易有道Java凉经

一共三面,凉在总监面。

三面面经具体如下:

前言

8月27日上午11点钟,我进行了网易有道三面。
这一轮是总监面,我本来以为会有一些场景题,然后手撕算法,但是都没有。
面试官在发现我对分布式微服务中间件所知甚少之后,就对我丧失了兴趣,给我出了一道比较难的题目,想看看我的算法是否特别出众。
但是遗憾的是,我的算法菜的一笔,让我在面试的时候手撕一道从未见过的、目测难度为hard的算法题实在心有余而力不足,最后挥手道别之后就把我挂了。
最令人感到伤心的是,连封感谢信都没收到,仅仅就是在官网上显示了面试未通过。

聊项目

我说完自己在实验室做的两个项目之后,面试官对第一个垃圾网吧项目表示乏陈可味,说到第二个项目中的数据库优化才表示出了一些兴趣,详细地询问了我是如何进行优化的,问了问具体的业务场景,最后问我知不知道数据库索引实现的原理。

Redis

说完项目之后就开始分布式和中间件连击,首先问我用过Redis的哨兵模式和集群模式吗?知道如何向Redis的集群中新增加一个节点吗?

哨兵模式之前还是有看过,所以还能说一说,集群模式只记得哈希槽之类的相关内容了,所以说自己不知道是如何向Redis集群中新增加一个节点的。

后来看了看《Redis设计与实现》,大概明白了。
每个新建的节点都是一个单独的集合,要向原来的集群发送以下指令:

//127.0.0.1 7001为新增加的IP和端口
CLUSTER MEET 127.0.0.1 70012

但是这个时候新建的节点还没有分配哈希槽,所以还需要重新分配哈希槽,把一部分节点放到新的Redis中去。
在重新分配的过程中Redis也是使用的渐进式Hash的方式,逐步搬迁到新的节点中,同样的如果客户端访问这个Redis的时候发现没有目标key,那么说明该key可能已经移动到新的节点中了,那么就需要重新访问。
如果该key确定已经移动了,那么客户端会修改自己保存的哈希表,之后就会每次访问新的节点而不用走原来的节点。

消息中间件

说完了Redis之后,就问我对消息中间件了解吗?
我就说了说项目中用到的NetMQ和Redis是如何作为消息中间件的。
但是看表情和后来的反应似乎不是很满意,可能想听kafka或者RocketMQ之类的中间件?

算法题

到这里其实只面了6分钟,我已经感觉到面试官对我兴趣不大了,他说,我们来做道算法题吧,于是给我出了这道题。

计算数组的小和

限定语言:C、Python、C++、Javascript、Python 3、Java、Go
数组小和的定义如下:
例如,数组s = [1, 3, 5, 2, 4, 6],在s[0]的左边小于或等于s[0]的数的和为0;在s[1]的左边小于或等于s[1]的数的和为1;在s[2]的左边小于或等于s[2]的数的和为1+3=4;在s[3]的左边小于或等于s[3]的数的和为1;
在s[4]的左边小于或等于s[4]的数的和为1+3+2=6;在s[5]的左边小于或等于s[5]的数的和为1+3+5+2+4=15。所以s的小和为0+1+4+1+6+15=27
给定一个数组s,实现函数返回s的小和
[要求]
时间复杂度为O(nlogn),空间复杂度为O(n)

示例1
输入
[1,3,5,2,4,6]
输出
27

分析:
没有分析,我根本不会做,我一开始想先说说自己的思路,但是面试官并不想听,就说你先写吧。
然而并没有想出来,我以为是先使用暴力写出n^2的算法,然后使用logn的二分进行优化,但是想了很久都没有想明白应该如何优化。
面试官也没有说这道题应该怎么去做,就只是叫我下去之后自己看看。

面试结束之后我上网搜了一下,发现原来一开始的思路就错了,这个道题是采用类似《剑指offer》逆序那道题的归并排序来解决的,
所以这个nlogn不是n^2的二分优化,而是归并排序的nlogn,很显然,逆序对是《剑指offer》里面为数不多的困难题,我觉得我在面试时候如果没见过的话肯定做不出来。

import java.util.Scanner;

public class Main {
	public static void main(String args[]) {
		int[] arr= {1,3,5,2,4,6};
		int[] copy=new int[arr.length];
		System.arraycopy(arr, 0, copy, 0, arr.length);//!!!
		int smallSum=getSmallSum(arr,copy,0,arr.length-1);
		System.out.println(smallSum);
	}
	
	public static int getSmallSum(int[] arr,int[] copy,int l,int r) {
		if(l==r) {
			return 0;
		}
		int mid=(l+r)>>1;
		int leftSum=getSmallSum(copy,arr,l,mid);
		int rightSum=getSmallSum(copy,arr,mid+1,r);
		
		int i=l;
		int j=mid+1;
		int copyIdx=l;//
		int smallSum=0;
		
		while(i<=mid&&j<=r) {
			if(arr[i]>arr[j]) {
				copy[copyIdx++]=arr[j++];
			}
			else {
				smallSum+=arr[i]*(r-j+1);//
				copy[copyIdx++]=arr[i++];
			}
		}
		while(i<=mid) {
			copy[copyIdx++]=arr[i++];
		}
		while(j<=r) {
			copy[copyIdx++]=arr[j++];
		}
		return smallSum+leftSum+rightSum;
	}
}


结局

算法题没有做出来之后,我就已经知道自己凉了,然后在结束之前,面试官又问了几个问题。
Spring源码看过吗?
答:我说看过一点,知道他是如何启动的。但是这边他也没打算问下去。
SpringBoot用过吗?你们现在打的是war包对吗?你知道打包和编译的原理吗?
答:不知道。
你对SpringCloud、微服务、云服务、XXX(一个我从没听过的技术)也没有了解对吧?
答:是的。

好吧,你的情况我知道了,你还有什么想问的吗?
面成这个样子,我再蠢也知道自己凉了,也就没有腆着脸问自己面的怎么样,就问问你们用的什么技术栈,自己现在还应该学点什么东西。

最后的最后,面试官和我道了再见,并且挥了挥手,仿佛就在说沙扬娜拉一般。



#面经##校招##网易##Java工程师#
全部评论
唉,真是卷
1 回复 分享
发布于 2020-08-30 07:43
小和这题 你要是看了左程云的视频就好了。讲归并排序算法时候就讲这题了
1 回复 分享
发布于 2020-08-30 08:29
点赞 回复 分享
发布于 2020-08-29 15:26
楼主你好,你投的是广州的还是北京的有道
点赞 回复 分享
发布于 2020-08-29 17:33
真实,
点赞 回复 分享
发布于 2020-09-11 09:55

相关推荐

头像
10-28 21:00
已编辑
上海理工大学 Java
网易一面(ab面)两个面试官,时间有点久了,具体问题忘记了,主要是问八股和场景题,八股主要问的计网、操作系统、数据库、redis、linux等等网易二面(ab面)还是两个面试官1.自我介绍2.AOF持久化机制3.linux中一个进程正在读文件&nbsp;我们可以同时把这个文件删除掉吗4.一个程序正在写文件&nbsp;可以把这个文件删除掉吗5.如果进程还没读完会怎么样呢6.linux查看内存使用情况7.查看buffer、Cache等使用情况呢8.释放掉linux文件缓存用什么命令9.算法题&nbsp;求长度最小的子数组10.二维数组按行和按列遍历哪个更耗时?为什么11.内存布局有哪些?12.缓存局部性是什么?是针对什么的?如果数据已经在内存里呢?13.把数组符合条件的元素拷贝到新数组中,分别传入一个有序数组和一个无需数组,两种拷贝耗时一样吗14.设计一个爬虫系统重url去重的方案15.还有没有更优的方法16.布隆过滤器底层是什么17.可以把url从布隆过滤器中删除掉吗?18.如果想要把url从布隆过滤器中删除掉怎么办?19.将一个正在运行的网络程序的网线拔掉,这个tcp连接的状态会变吗?什么时候会变?20.mysql索引是b+树,查1≤a≤10,遍历过程是怎么样的21.联合索引(a,b),select&nbsp;*&nbsp;from&nbsp;t&nbsp;where&nbsp;b&nbsp;=&nbsp;1走不走联合索引?为什么?22.如果a是一个状态值,怎么才能让它走联合索引23.说一下ACID24.如果只有A可以实现C吗?为什么?25.I是怎么实现的,隔离级别是依靠什么实现的?26.死锁的必要条件27.构造一个数据库死锁的案例28.介绍一下进程、线程、协程之间的关系29.两个进程切换时间开销怎么计算,实现一下30.写文件一定会发生cpu调度吗31.使用管道和信号量的方式会不会出现误差?怎么解决网易三面1.自我介绍2.项目和实习拷打3.高并发抢验证码怎么设计4.设计一个云游戏平台(问的很细) #网易求职进展汇总#&nbsp;&nbsp;#网易#
查看35道真题和解析 网易求职进展汇总
点赞 评论 收藏
分享
4 23 评论
分享
牛客网
牛客企业服务