最近面试点记录总结

简介: 最近面试点记录总结

1 红黑树属于平衡二叉树。它不严格是因为它不是严格控制左、右子树高度或节点数之差小于等于1,但红黑树高度依然是平均log(n),且最坏情况高度不会超过2log(n),通过左字数


红黑树能够以O(log2(N))的时间复杂度进行搜索、插入、删除操作。此外,任何不平衡都会在3次旋转之内解决。这一点是AVL所不具备的。


2.hash碰撞的解决方式是开放寻址法和拉链法。


hash碰撞的解决方式是开放寻址法和拉链法。


开放寻址法指的是,当前数组位置1被占用了,就放到下一个位置2上去,如果2也被占用了,就继续往下找,直到找到空位置。


拉链法采用的是链表的方式,这个时候位置1就不单单存放的是Entry了,此时的Entry还要额外保存一个next指针,指向数组外的另一个位置,将李四安排在这里,张三那个Entry中的next指针就指向李四的这个位置,也就是保存的这个位置的内存地址。如果还有冲突,就把又冲突的那个Entry放到一个新位置上,然后李四的Entry指向它,这样就形成一个链表。


总结起来:开放寻址法和拉链法都是想办法找到下一个空位置来存发生冲突的值。


3.设计模式工厂模式的好处


工厂模式是我们最常用的实例化对象模式了,工厂模式在Java程序系统可以说是随处可见。它的好处有:


1、工厂模式可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任。


2、客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。


3、通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。


构造函数中可以调用virtual函数嘛?


可以,虚函数底层实现原理(但是最好不要在构造和析构函数中调用) 可以,但是没有动态绑定的效果,父类构造函数中调用的仍然是父类版本的函数,子类中调用的仍然是子类版本的函数。 effictive c++第九条,绝不在构造和析构过程中调用virtual,因为构造函数中的base的虚函数不会下降到derived上。而是直接调用base类的虚函数。绝不在构造和析构函数中调用virtual函数:

a) 如果有继承,构造函数会先调用父类构造函数,而如果构造函数中有虚函数,此时子类还没有构造,所以此时的对象还是父类的,不会触发多态。更容易记的是基类构造期间,virtual函数不是virtual函数。

b) 析构函数也是一样,子类先进行析构,这时,如果有virtual函数的话,子类的内容已经被析构了,C++会视其父类,执行父类的virtual函数。

c) 总之,在构造和析构函数中,不要用虚函数。如果必须用,那么分离出一个Init函数和一个close函数,实现相关功能即可


js闭包的用途


用途在三个方面:


1.可以通过外部读取函数内部的值


2.可以封装函数的私有方法和私有属性


3。可以把一部分数据永远放在内存中


tcp滑动窗口

TCP协议如何保证数据可靠性_nZk丶的博客-CSDN博客_tcp如何保证数据传输的可靠性

相关文章
|
1天前
|
Web App开发 存储 前端开发
技术心得记录:前端面试题汇总
技术心得记录:前端面试题汇总
|
1月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_45 换座位
「SQL面试题库」 No_45 换座位
|
9月前
|
数据采集 JavaScript API
猿人学对抗赛踩坑记录
猿人学对抗赛踩坑记录
116 0
猿人学对抗赛踩坑记录
|
SQL JavaScript 小程序
面试官:一千万的数据,你是怎么查询的?
面试官:一千万的数据,你是怎么查询的?
|
缓存 自然语言处理 JavaScript
【前端面试分享】-2019“银十”面试题记录(上)
由于不可抗逆之因素,在金九银十的后半段开始求职。 面试的确可以驱动学习,驱动知识的归类整理。 以此文记录面试过程中遇到的题目,仅供分享,不喜勿喷。
|
缓存 编解码 JavaScript
【前端面试分享】-2019“银十”面试题记录(下)
由于不可抗逆之因素,在金九银十的后半段开始求职。 面试的确可以驱动学习,驱动知识的归类整理。 以此文记录面试过程中遇到的题目,仅供分享,不喜勿喷。
|
SQL 关系型数据库 MySQL
校招面试题有了!——记录一个有趣的mySql查询
## 前言 最近在做一个内部系统的报表统计功能,遇到了一个麻烦的查询场景,因为对sql语句确实不太熟练,在网上查了一些资料,最终找到了一个解法。具体场景和表结构并不复杂,对sql大佬们来说应该也是小case,不过细想确实有趣,特此记录下来。 ## 问题 已知表A有列:主键id、日期date和标签tag,其中tag是逗号分割的多值字符串(值的集合size不超过25个),如下如示例。请统计某段时间(例
|
编译器 C++
C++中的知识点记录
C++中的知识点记录
|
存储 算法 搜索推荐
【面试专题】总结记录40个数据结构与算法的常见问题(上)
【面试专题】总结记录40个数据结构与算法的常见问题(上)
【面试专题】总结记录40个数据结构与算法的常见问题(上)