乐易网络面试

面试官基本按照简历面,但是简历写的太差了,没有突出重点,自己的知识也没有完全cover简历,基础较差,面试效果不理想。

1、自我介绍

2、简历写了学过数据结构和算法

question1:笔试中递归题的时间复杂度你是怎么做的?

answer1:递归的时间复杂度一般都是2的n次方(胡说八道ing)

面试官纠正:在递归函数中,需要进行拆解,并不都是2的n次方,比如这道题就是O(n)

question2:你了解哪些数据结构?数组和链表有什么区别?

answer2:数组、链表、栈和队列、二叉树、字符串。数组在内存中是开辟一片连续的内存地址储存,而链表的内存地址不一定连续,链表依靠指针来指向下一个数据的内存地址,浪费了一定的内存。

question3:说一下链表和数组的各种操作的时间复杂度分析,和原理,以及使用场景。

answer3:数组,增删都是O(n)查改都是O(1);链表,查删改都是O(n),插入是O(1)。原理:数组是分配的连续的内存地址,链表有额外的空间存储下一个数据的指针。使用场景:链表用于需要遍历的场景,数组用于查询频繁的场景。(说完,面试官笑笑不说话)

PS:请忽略我的胡说八道。

补充:- 数组:

          无序数组:查询修改O(1),插入O(1)(直接到最后),删除末尾元素O(1),删除任意一个元素O(n)。

          有序数组:查询修改O(1),插入(基于二分查找)O(n+logn),删除末尾元素O(1),删除任意一个元素O(n)。

        -  链表:

          有序链表:查询O(n)、插入O(n)、删除O(n)    失去了链表插入快速的特性

          无序链表:查询O(n)、插入O(1)(头插、尾插)、删除O(n)

原理:数组是分配的连续的内存地址,链表有额外的空间存储下一个数据的指针。

举个栗子:得到数组本身id,再加上数组的索引,由于数组每个元素的空间是固定的,所以元素的内存地址为:id+索引*每个元素的固定大小。即可实现O(1)的查询。

使用场景:

  • 数组:数据较少、查询密集型业务
  • 链表:插入删除密集型,对动态性要求高

3、简历写了熟悉redis、mysql数据库,了解linux基础,学过计算机网络

question4:你说你了解linux基础,你有没有linux开发经验,如何解决linux系统下多线程争夺内存问题。

answer4:有项目部署在linux上的经验。(试探性)查看内存占用情况,再分析问题解决问题?(面试官笑笑不说话)

question5:你说你了解mysql数据库,知道mysql怎么优化吗?

answer5:mysql靠索引优化(再次试探)?索引分为主键、外键、联合索引、唯一索引...

question6:你说你学过计算机网络,你学了哪些?

answer6:窝学过http、https、tcp、udp协议。

question6-2:那你能说一下tcp/ip协议的底层架构吗,在五层架构模型上。

answer6-2:卒....

补充:

4、简历写了学过算法

question7:你了解哪些排序算法?讲一下原理,分析一下时间复杂度。

answer7:慢一点的冒泡排序,快一点的快速排序。冒泡排序就是巴拉巴拉,快排就是巴拉巴拉,时间复杂度冒泡O(n²)快排O(nlogn)。

question8:写个快排吧,面试结束了

answer8:..........

估计是凉了,哎

164 views
Comments
登录后评论
Sign In
·

哈哈你的面试还挺有意思的,不过不断试错挺好的

·

我突然发现这些问题都挺底层的、挺常见的,是因为你没写项目经历吗,他居然都不问一些你的项目相关的,那个才是展现你实力的最好机会

·

不好意思,你的用词我没绷住。

·

面试果然喜欢考快速排序,楼主最后写出来了吗