一、笔试
试卷总共125分,(但实际上不是都130分了吗, 还是我哪个环节记错了ORZ)
1、选择题(20*1分):
大约6道算法题,2道Linux命令相关题,3道计算机网络(对TCP/IP四层协议)整体要熟,4道数据库编程(数据库性能优化、事务提交等细节),5道大数据题(对主流大数据产品Hadoop,HIVE的基本架构和实现细节要熟)
2、数据库题(10+15分):
第一道题是分析对比Redis、传统数据库(mysql)、Hbase、Hive的区别;第二道题是建表,SQL查询以及建立索引(mysql对时间类型数据的操作)。
3、编程题(3*20分):
不是牛客网那种要提交验证的,而是给出一个相对不那么具体的问题,也没有具体例子(输入输出),让你设计算法。
-
第一题:
有n个岛屿,里面有一些宝藏,它们之间有n-1个隧道相连,冒险者每走一次隧道就要花一个小时,要取得所有宝藏花费的最少时间是多少?
本人做法:(提出具体例子,然后给出代码)
输入:
3 # 代表有三个岛屿
[[1,2],[0],[0]] # 代表岛屿0与岛屿1,岛屿2相连
输出:
3 # 从0到1,回到0再到2
贴代码:(递归实现深度优先搜索)
-
第二题
具体问题忘了(这道题没来得及做),算是一种0-1背包问题;
-
第三题
n个岛屿分布在无限长的一条直线海岸线上,基站都建在岛屿上,基站的覆盖长度为s,求至少多少基站就能覆盖全部岛屿?
输入:
3 # 岛屿个数
3 # 基站覆盖长度s
[ [1,3],[5,9],[10,11]] # 每个元素代表着一个岛屿的起始位置和末端位置
输出:
3 # 结点1,5,8分别为基站覆盖长度的起始位置,就能覆盖三个岛屿了
代码:只要能注意到上一个岛屿的基站可能对下一个岛屿有覆盖就好了,代码没有具体算法
4、个人经历题(5*5分):
(1)性格最大缺点,对未来职业可能会有所影响的 (2)以前做了其他同学做不出来的项目是什么,原因?
(3)同事和你负责同一个项目的两个模块,同事对自己模块不熟,你对同事的项目很熟,如果给你做会事半功倍,请问你会怎么做?
(4)大学课余时间花费最多在哪里,为什么要这么做,对自己现在有什么影响?
(5)你平时是怎样学习该岗位知识的?现在的学习进度是怎样的?