2020-08-13 一面
总体问的比较基础,感觉主要是考察是否了解某个方面,问的都不太深
- 自我介绍,介绍个人学校背景+项目经历
- 项目问题。
- 是否了解机器学习的一些算法,比如分类里面的决策树,聚类等一般算法
问决策树里有100个特征,但是主要特征是10个,需要如何选定这10个特征,由于完全不会,所以没有回答 - 机器学习的算法不熟悉,面试官说考察一下基本数学能力,给了一道赛马题:
假设有64匹马,总共有8个赛道,即一场比赛可以8个马进行赛跑,问最少需要多少场比赛可以得到跑的最快的4匹马?
答:第一个答案没有思考全面,回答的太快是错误的,是这样回答的:64匹马分8组进行比赛,得到每组比赛的第一名,然后将8个第一名组成一组进行比赛即可得到前4名,需要8+1=9场比赛,很明显是错误的。。因为不能保证每组的第一名比其他组的其他马跑的快。
思考了一会后给了第二个答案:15场,当然也不对,但是确实得到的是前4名,只是不是最少场次。方法是:64匹马分8组进行比赛,然后每组的前4名集合起来共有32匹,这里直接丢弃后4匹,因为他们不可能是前四名,同理,32匹马分4组进行比赛,在取每组的前4名,总共16匹马,继续划分,最后总共需要8+4+2+1=15场。
最后面试官给了正确答案:
64匹马分8组进行比赛,取每组第一名总共8匹马进行比赛,这8匹马的后4名的马所在的组抛弃不要,因为他们的第一都已经不是前4名了,所以他们更不可能是了,这样可以筛选掉32匹马,还剩下32匹马,第一名的马所在的组前四名参加比赛,4匹马,第二名的马所在的组前3匹马参加比赛,3匹马,第三名的马所在的组前2名参加比赛,2匹马,同理,第四名的组有1匹马参加比赛,筛选过后只剩下4+3+2+1=10匹马,只需要在比赛两场即可,因此总共需要8+1+2=11场比赛即可。 - linux问题:给定10w行的文件,将文件拆分为10个1w行的文件,如何做?
答:我不会。。
答案:split -l 10000 log.txt newfile - 你熟悉的linux命令:
答:cd ls ps aux mkdir cat vi vim tar top .... - 排序算法有哪几种,讲一下冒泡排序:
由于太简单我竟然想如何表达想了好久。。
冒泡、插排、选择排序、快排、堆排序、合并 - 介绍一下链表,链表是什么?
答:链表存储数据不需要连续的内存空间,是通过指针来获取下一个结点的位置的,链表的结点包括两个内容,一个是结点的值,一个是指向下一个结点的指针。链表也有很多种,单链表、双向链表、循环链表、双向循环链表。 - 如何判断一个字符串是否是回文串?
答:找到字符串的中心位置,从中心位置开始从左右两边进行遍历比较,当然这个中心位置和字符串的长度有关系,当左右两边遍历时字符不一样代表不是回文串,如果遍历结束字符一样则是回文串。
总结:总体问的很简单。。简单到当时问冒泡排序时都组织语言组织了好久。。。
网友评论