面经(3) 2020/3/19 后端开发实习生复试

这次面试上来就给我甩了3道算法题给我整懵了,果然平时还是要多刷几道算法题。。。

1、判断一个int是否为回文数,回文数定义为首位置和末尾一样,如1234321,123321,要求10分钟内完成。

回文数

2、判断二叉树是否为平衡二叉树,要求10分钟内完成。

平衡二叉树

3、请实现LRU缓存类,要求10分钟内完成。

LRU缓存

4、有64匹马,一个赛场 8个跑道, 要比赛决出前4名,问充分必要条件最少需要多少场?

这边文章讲的很清晰,感谢博主:64匹马,8个赛道,找出前4名最少比赛多少场? 做题的时候思路不清晰,在剩下9匹马的时候想不明白,没有分类讨论。

5、如何判断两个链表是否重合?

说实话对于这个问题不是特别理解,如果是相交就比较好判断,重合的话除了一个个结点比较我没想到更优的解法。

6、MySQL中的主从同步,外连接和内连接的区别,group by的作用?
1、主从同步

主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行(MySQL的默认同步方式)的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。

2、外连接和内连接的区别

具体可看这篇文章:Mysql的左外连接丶右外连接与内连接的区别

  • 内连接,显示两个表中有联系的所有数据;
  • 左外连接,以左表为参照,显示所有数据;
  • 右外连接,以右表为参照显示数据;
3、group by的作用

写得很详细的文章:MySQL中group by的作用

7、SQL语句:查找一个表中某一列最大的值。

select max(列名)from 表名

8、快速排序的时间复杂度以及好处

快速排序的平均时间复杂度为O(n log n),它的好处是原地排序(只需要一个很小的辅助栈),也被称为性能最好的排序算法。这里上篇关于快速排序和堆排序的比较的文章:为什么说快速排序是性能最好的排序算法?

9、TCP和UDP的基本区别?TCP如何做到可靠传输?TCP的拥塞控制?
TCP和UDP的区别:
  1. 基于连接与无连接
    TCP面向连接,在发送数据前需要通过三次握手建立连接,而UDP是无连接的,所以不用建立连接。
  2. TCP较UDP更可靠
    TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按顺序到达;UDP尽最大努力交付,不保证可靠交付。
  3. 流模式与数据报模式
    TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流,UDP是面向报文的,并且,UDP没有拥塞控制,因此网络拥塞不会使源主机的发送速率降低(对实时应用很是有用,如IP电话,实时视频会议等)
  4. 开销与资源的使用
    TCP首部开销20字节,UDP的首部开销小,只有8个字节。并且,TCP要求的资源较多。
  5. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
  6. TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
TCP如何做到可靠传输?TCP的拥塞控制?

实在是太菜了,多学学人家:TCP如何做到可靠传输?拥塞控制:当网络拥塞时,减少数据的发送。发送方有拥塞窗口,发送数据前比对接收方发过来的即时窗口,取小,以控制发送方的速率,最终达到降低整个网络的拥塞程度。而TCP主要通过四个算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复。

10、三次握手和四次挥手?其中客户端经过几次状态的变化?

关于三次握手四次挥手

11、redis有几种数据类型?分别是什么?

redis存储的是:Key,Value格式的数据,其中Key都是字符串,而Value有5种不同的数据结构,分别是String、hash、list、set和sortedset。


关于面试官对后端开发学习的建议:
1、Linux一定要学好。
2、网络编程要学好,经典的书籍要看。
3、TCP/IP,卷一,卷二,卷三。
4、多学习开源项目,可以帮助你迅速提升。
5、学一个东西应该要先会用,然后再去深究细节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值