1. 去哪儿网java开发面试经验牛客
以下是某位求职者面经,仅供参考:
一面:
1.自我介绍
2.直接上手红黑树和平衡二叉树区别
3.红黑树的旋转
2node节点插入和3node节点插入时候旋转的情况 简述伪代码
4.问项目情况。大概半小时 5.concurrenthashmap
结构分析。 删除和获取操作过程描述。就是segment. Entry.
除了value 为volatile 其余都是final.
删除和获取操作等等。例如:删除操作是将entry要删除的节点的前半部分链表进行复制,并指向当前删除节点的后面节点。(因为next是final的,不可以进行修改,只有entry的表头可以修改)
不详述了。
6.索引的优缺点 什么时候索引不起作用? 在什么地方可以使用索引?
7.jvm
多态原理。invokestatic invokeinterface
等指令。常量池中的符号引用 找到直接引用。在堆中找到实例对象,获取到偏移量,由偏移量在方法表中指出调用的具体方法。接口是在方法表中进行扫描)等等扯了半天
8.os: 页面调度算法 几种 分别说一下 LRU FIFO 最佳适应算法
9.内存管理: 固定分区 动态分区 段 页 都讲讲 (哈哈)
10.自己实现一下LRU算法
8.怎么学习。看过什么书
二面:
1.自我介绍
2.项目中与app移动端 的json格式设计
3.hashmap的缺点 具体提现在哪里?
4.Collections.sort()
的原理---本质上调用的是Arrays.sort() 内部是 使用的归并排序 接着写了一下归并(辅助数组的归并,和手摇算法的归并)
5.一个字符串数组,现给定一个string去进行找出对应的数组中字符串的下标 (可以有容错,但两字符串长度必须一致,容错为2)
例如:
["hello","hj","abc"]
key=“hellg" 返回下角标0
6.jvm参数调优 jvm堆的大小调优
MaxTureningShelod newratio -xxs -xxm -persize
7.图的 prime
算法
kruskal
算法
dijkstra算法 解决什么问题? 分别写一下
伪代码
8.设计模式: 单例模式(懒汉饿汉) 工厂方法模式 观察者模式 责任链模式
9.项目 又问了一些
10.平时怎么学习?
三面:
1.自我介绍
2.自己优缺点
3.目前有几个offer
4.工作地点要求
5.在校实验室做项目,你认为最大的收获是什么
6.评价一下自己的大学生活
7.讲了一下福利 之类的
现场书面offer没了,所以只好等等邮寄,不过还好给了一个布偶纪念品
2. 牛客网做编程题过程中打开其他网页会被记录吗
不会
3. 计算机数学-递归算法
你去搜搜斐波那列奇数,还有爬台阶问题,这个问题类似的,fn=f(n-1)+f(n-2),希望能帮到你吧,牛客网里面编程训练的剑指offer也有这题
4. 我想知道 蓝桥杯 力扣 牛客网还有公司的算法面试的上机都是怎样形式的(只说Java就好 )想刷题却无从下手
类人家的后台有,你在自己这里运行就自己写主类,你提交就提交那个方法的就行
5. 一道牛客上的算法题,求大佬帮我看看哪里写错了
#include<iostream>
using namespace std;
int main()
{ int T;
cin >> T;
while (T--)
{ int A, B;
scanf("%d%d", &A, &B);
int a = 0, b = 0;
while (A > 0)
{ a = a*10+ A % 10;
A /= 10;
}
while (B > 0)
{ b = b*10+ B % 10;
B /= 10;
}
int S = a + b;
int s = 0;
while (S > 0)
{ s = s*10+ S % 10;
S /= 10;
}
printf("%d ", s);
}
return 0;
}
6. 面试遇到算法题怎么办,都不会
科班出身还是半路出家?半路出家就选别这类岗位。
计算机科学专业的基础,外加算法竞赛相关的培训和实战,不算基础,培训过程也至少要耗去一两年,所以要算能不能和值不值。真正需要算法能力高超的岗位薪水好,但是,少之又少,竞争惨烈,985本专业毕业生能抢上的都属于凤毛麟角。
7. 在顺序表中按值查找运算的复杂性为 牛客网
第26题 (2) 分
在开散列表中不会出现堆积现象.
正确
第27题 (2) 分
计算机的速度越快,算法的时间复杂性就越低.
错误
第28题 (2) 分
顺序表不需存放指针,链表要存放指针,故链表的存储空间要求总是比顺序表大.
错误
第29题 (2) 分
如果某种排序算法是不稳定的,则该方法没有实际的应用价值.
错误
第30题 (2) 分
对任何图,执行一次深度优先或广度优先遍历后,就可访问到图中所有节点.
错误
第31题 (2) 分
二叉树中不可能有两个结点在先根、中根和后根序列中的相对次序都不变.
正确
第32题 (2) 分
链栈一般不需要头结点,因为无头结点的链栈运算也很方便.
正确
第33题 (2) 分
数组的基本运算有读、写、插入、删除等.
错误
第34题 (2) 分
树的度是指树中结点的最大度数,所以二叉树的度为2.
错误
第35题 (2) 分
在顺序表中按值查找运算的复杂性为O(1).
错误
第36题 (2) 分
n个结点的有向图,若它有n(n-1)条边,则它一定是强连通的.
正确
第37题 (2) 分
基数排序不需进行关键字间的比较,故执行时间比基于比较的排序方法要快.
错误
第38题 (2) 分
用线性探测法解决突出时,同义词在散列表中是相邻的.
正确
第39题 (2) 分
不管树的深度和形态如何,也不可能构造出一棵有100个结点的哈夫曼树.
正确
第40题 (2) 分
如果根结点的左子树和右子树高度差不超过1,则该二叉树是平衡二叉树.
错误
第41题 (2) 分
有时冒泡排序的速度会快过快速排序.
正确
第42题 (2) 分
缩短关键路径上活动的工期一定能够缩短整个工程的工期.
错误
第43题 (2) 分
线性结构可以顺序存储,也可以链接存储.非线性结构只能链接存储.
错误
第44题 (2) 分
单链表中取第i个元素的时间与i成正比.
正确
第45题 (2) 分
二分查找所对应的判定树,是一棵理想平衡的二叉排序树.
正确
第46题 (2) 分
堆排序是一种巧妙的树型选择排序.
正确
第47题 (2) 分
拓扑排序可以分析某工程能否顺利进行.
正确
第48题 (2) 分
利用栈可将递归程序转化成非递归程序.
正确
第49题 (2) 分
设串的长度为n,则其子串个数为n(n+1)/2.
错误
第50题 (2) 分
线性表、树、图等都可以用广义表表示.
正确
8. 算法工程师能火多少年
持续到人类灭绝,就像你问数学为人类还能服务几年一样,看个人能力能否吃这碗饭。比如可以尝试挑战ACM,做一些算法题,国内的也可以做一下蓝桥杯,当然这个简单一些,更高处走就学一下神经网络算法和一些机器学习算法都可以。估计要闭关7--10年,或者你从小学起。
比如我刚刚搜到的一个中学生做算法的网站,你如果基础弱一点就可以去试试网页链接,这个应该很容易,稍微上一个层次可以去蓝桥杯网站注册做题网页链接,牛客网也有一些经典ACM试题分析,你可以去做一下网页链接,当然也可以去POJ官网做题。如果这些题目你都能够解决,那么算法工程师这个职位很适合你。算法工程师算是人类目前工资最高的职位,凭本事拿钱的,更高的就是人工智能的算法工程师。
9. 大学的数据结构学过一遍,但是都不怎么熟悉,然后现在想学算法,该怎么开始学
首先数据结构是研究数据的存储的,虽然在这个过程中也会诞生很多有意义的算法,比如图、树等等;
对于数据结构的话,你先买一本书,把书上的每一章节过一遍,然后到Leetcode或者是牛客网上找题,从数组、到链表、到树、到图,都过一遍,然后你不是不怎熟悉嘛,所以要多看别人的解析,遇到不懂的地方立刻查。
对于算法的话,我觉得还是找一些面试书来看比较好,经典算法要记住,改进的算法要弄清原理,毕竟算法有很多,不是一时半会就能看完的,面试书比较实用,内容也基本够用。