Contents
  1. 1. 面试概况
  2. 2. 面试心得
  3. 3. 面试内容

面试概况

面试时间:2016年3月9日 14:30

面试时长:22分钟(十有八九又挂了)

面试形式:电话面试

面试心得

面试岗位为算法工程师,并没有问太多关于自然语言处理,机器学习等方向相关的问题。

面试问题主要集中于编程语言、数据结构、基本算法、性能优化(算法/系统)等基础知识。

总的来说,主要有两点不足:

(1)基础不扎实,没有做好基础只是的准备工作;

(2)态度不端正,没有认真分析面试官的问题;

面试内容

1.简单介绍一下自己

2.编程语言

(1)使用哪种语言熟练些?

Python

(2)Python中is和==的区别?

(3)Python的print输出什么?

a = 1

b = 1

print a is b

(4)了解Python装饰器吗?

不了解

(5)Python和C++比性能上有所欠缺,有做过Python性能优化吗?

没有

3.数据结构和算法

(1)有用过哪些数据结构?

链表,二叉树,队列,栈等。

(2)如何找到二叉树中两个结点的最近公共祖先?

思路:

找到从根节点到第一个结点的路径;

找到从根节点到第二个结点的路径;

从前向后对比两个路径,第一个不同的结点的前一个结点就是所求结点;

(3)时间复杂度是多少?

时间复杂度为O(logN);

(4)如果进行n次查找,时间复杂度是多少?

n次查找时间复杂度为O(N*logN)

(5)有什么改进的方法吗?

改进思路:加缓存(随口说的)

(6)讲讲快速排序的原理?

首先找一个基准元素;

然后比它小的放在左边,比它大的放在右边;

递归处理左半部分和右半部分;

(7)时间复杂度是多少?

理想情况下时间复杂度为O(N*logN)

最坏情况下时间复杂度为O(N*N)

(8)列举一个最坏情况下的例子?

最坏情况下的例子:完全相反的顺序(这个答案不对)

4.项目

(1)爬虫怎么做的?

调用API(面试官:那这个不是网页解析的那种爬虫。)

(其实有做过自己解析网页的爬虫,但是忘了和面试官说)

(2)做过哪些比较完整的大型项目吗?

一个Hybrid App开发

(3)介绍一下项目使用了哪些技术?

整体架构Linux,Apache,MySQL,PHP;

后台使用Yii2.0框架;

前端使用Ionic框架;

(4)遇到了哪些问题以及是如何解决的?

遇到过图片体积过大的问题,通过图像压缩解决。

(5)前端和后台的通信协议是什么?

http协议(不知道他想问啥。。。)

(6).遇到性能问题应该如何提高?

没做过性能优化

(虽然没做过,但是当时应该从服务器(Apache/Nginx),数据库(数据库引擎/索引/缓存数据库)两方面谈一下。)

Contents
  1. 1. 面试概况
  2. 2. 面试心得
  3. 3. 面试内容