作业帮 大数据面经
问了一些数据结构,计算机网络基础知识
Java问的比较多
集合里面的底层实现
Java Concurrenthashmap 1.7与1.8底层实现
还有其他的我给忘了
大数据技术spark FLink问的一些
机器学习随便选个分类器讲一下如何实现
三道手撕代码
第一道题目
二叉树节点间的最大距离问题
从二叉树的节点A出发,可以向上或者向下走,但沿途的节点只能经过一次,当到达节点B时,路径上的节点数叫作A到B的距离。
现在给出一棵二叉树,求整棵树上每对节点之间的最大距离。
输入描述
第一行输入两个整数n和root,n表示二叉树的总节点个数,root表示二叉树的根节点。
以下n行每行三个整数fa,lch,rch,表示fa的左儿子为lch,右儿子为rch。(如果lch为0则表示fa没有左儿子,rch同理)
最后一行为节点o1和o2。
输出描述
输出一个整数表示答案。
输入
7 1
1 2 3
2 4 5
4 0 0
5 0 0
3 6 7
6 0 0
7 0 0
输出
5
第二道题目
判断二叉树是否为平衡二叉树
平衡二叉树的性质为:要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过1。给定一棵二叉树,判断这棵二叉树是否为平衡二叉树。
一颗树的高度指的是树的根节点到所有节点的距离中的最大值。
输入描述
第一行输入两个整数n和root,n表示二叉树的总节点个数,root表示二叉树的根节点。
以下n行每行三个整数fa,lch,rch,表示fa的左儿子为lch,右儿子为rch。(如果lch为0则表示fa没有左儿子,rch同理)
输出描述
如果是平衡二叉树则输出"true",否则输出"false"。
输入
3 2
1 2 3
输出
True
第三题sql,使用spark来完成下列操作,我使用的是DF的API,用了窗口函数
年级,班级 姓名 分数
年级下的班级的前三名
作业帮二面3.31
首先自我介绍
重点讲了一下第一个Spark项目的流程与调优,问的很细
Java DCL实现,volatile与sync的作用,JMM原理
CAS思想,半初始化对象,对象锁
代码题
大数据
本地单机4G内存,10T硬盘
A、B两个500G文本文件,每行一列url
1. AB并集 出现次数前10023的URL
2. AB交集
1,2,3,4
4,5,6
5,6,7
7,8,8,9
算法题目
问题:给定两个等长度的一维数组Y[N]和A[N],编程实现如下效果
其中Y中元素为正整数1-50,A中元素为实数-10000-10000,各自都可能出现重复的数值。
选取一组下标集合{0,1,2,...,N-1},可能不选取。使得子数组Y'的不同元素计数 乘以 数组A'元素之和 的值最大,输出最大值。
使得count(distinct Y[i]) * sum(A[i])最大,输出最大值
例如:
{1, 2}
{4, 7}
返回22,因为2* (4+7) = 22,明显两个数字都选取才会使得结果最大
{1, 1}
{-1, -1}
返回0,因为什么都不选取结果最大
{1, 2, 3}
{7, 4, -1}
返回30,都选
{1, 2, 3, 2, 3, 1, 3, 2, 3, 1, 1, 1}
{1, 7, -2, 3, -4, -1, 3, 1, 3, -5, -1, 0}