58一面---看各位大佬都受到二面通知了,那我应该是跪了

1.介绍一下你自己:略。

2.给你处一个算法,在一个数组中找出两个数字使得相加等于给你的数字,要求时间复杂度为O(n)。。面试官说:如果做不出来,我可以给你换题目。我问了一下,这个数组是无序的吗?面试官说是。想了一会,说做不出来。数组是有序的写一下:这个可以自行百度。基本思路就是从头和尾开始相加,如果大于sum的话就尾底标减1,小于的便让头底标加1,直找到两个数字之和为sum或者是两个底标相等的时候,然后break,这里面他让我手写代码。

3.你说一下进程与线程的关系:线程是进程的基本单位,进程的资源,线程是可以共享的,例如,在开辟进程的时候,会给进程分配内存空间、全局变量、共享的文件,而线程就是这分配空间中的堆栈,其中堆是可以共享的,栈是私有的。

4.给你一个线上数据库,请你说一下如何提高搜索效率:首先出现效率低的原因就是多线程访问,一个线程访问时间长,而另一个却无限的等待。1.建立索引。2使用乐观锁机制,在hbase上使用该机制(即存储多版本的数据),如果使用的是悲观锁,会造成在一个线程操作的时候,另一个线程等待,但是乐观锁,可以根据读取的版本获取数据,不会因为造成线程的堵塞。

5.那你说一下是不是建立的索引越多越好,如何建立索引,或者建立索引的原理是什么:不是,(这个我不太会,乱说的)对于查询频率较高的字段去建立索引,还有就是如果某个字段建立索引,但是另外一个字段和该字段数据大致分类一致,只需要建立一个索引就可以了。

6.那如果是线下呢:1,建立索引。(我当时只说了这一个)。他说:hadoop存储机制你知道吧。(这算是一个引导)。然后我说:恩,知道,这是一个分布式存储,这个确实是可以提高其读取效率,我当时没有往这个方面考虑,其原理是:其大文件进行分块存储,首先是查询的是namenode,因为namenode上存储了datanode的信息,这样的话,就可以找到相应的datanode,因为大文件被分块了,所以我只需要刚刚存储信息找到相应的块文件,只需要搜索块文件便可以找到相应的数据。

7.你知道shuffle吗,说一下是否每个mapreduce都需要shuffle阶段:(他发音和我很不一样,而且也没有给我背景)问了一下才知道是shuffle。我说知道,这是mapreduce框架下面的一个过程。我说不是的,如果是map与reduce都执行的话,必然需要shuffle阶段,因为shuffle是对map输出一个排序、分类、冲刷磁盘的过程,这是mapreduce的必经阶段。但是如果仅仅是执行了map,那么shuffle阶段是可以省略的。

8.你用过hive吗:(这个我只是听过,确实没用过,我说没有)。

9.说一下存储的rowkey是如何设计的:(还是发音不一样,写下来才知道是什么东西)我说一下我们存储的时候的设计吧,他说好。我们爬去的是网站,因为要爬去的网页上,每个链接都有一个不同的字段,我们就是用这个字段来作为rowkey。

10.在你们体育课上,你们老师要求你们从高到低进行排列,但是突然来了一个,要求你把他放进去,你说一下你用什么数据结构:因为是高低顺序排列好的,所以效率最高的话,那么就是插入效率最高,也就是链表结构,在java中Linkedlist底层是链表结构。
全部评论
10题用红黑树吧log n java里TreeMap
点赞 回复 分享
发布于 2017-09-20 22:57
我一个手写代码bug多多 就挂了
点赞 回复 分享
发布于 2017-09-20 23:01
什么岗位
点赞 回复 分享
发布于 2017-09-20 23:02
我也是一面挂,面试官让我写一个字符串匹配,遂即手撕了一遍KMP,面试官代码没有细看,之后问了一些其他的,之后再也没消息了
点赞 回复 分享
发布于 2017-09-20 23:08
点赞 回复 分享
发布于 2017-09-21 01:08
西安?
点赞 回复 分享
发布于 2017-09-21 08:06
现场面吗?
点赞 回复 分享
发布于 2017-09-21 15:15
我也是北京现场面,刚面完一面,多半跪了
点赞 回复 分享
发布于 2017-09-22 14:43

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
评论
点赞
19
分享
牛客网
牛客企业服务