文末彩蛋:七月在线干货组最新升级的《2021大厂最新AI面试题 [含答案和解析, 更新到前121题]》免费送!
问题1:python在内存上做了哪些优化?
python通过内存池来减少内存碎片化,提高执行效率。主要通过引用计数来完成垃圾回收,通过标记-清除解决容器对象循环引用造成的问题,通过分代回收提高垃圾回收的效率。
问题2:怎么节省内存?
手动回收不需要用的变量;
将数值型数据转化为32位或16位(对数据类型进行限制)
代码示例如下:
问题3:pandas库怎么读取超大型文件?
可以采取分块读取数据的方式。
代码示例如下:
问题4:无重复字符的最长子串
该题为leetcode-3,难度:【中等】
方法:双指针 + sliding window
定义两个指针 start 和 end 得到 sliding window
start 初始为0,用end线性遍历每个字符,用 recod 记录下每个字母最新出现的下标
两种情况:一种是新字符没有在 record 中出现过,表示没有重复,一种是新字符 char 在 record 中出现过,说明 start 需要更新,取 start 和 record[char]+1 中的最大值作为新的 start。
需要注意的是:两种情况都要对record进行更新,因为是新字符没在record出现过的时候需要添加到record中,而对于出现过的情况,也需要把record中对应的value值更新为新的下标。
代码:
问题5:判断链表是否有环、链表环的入口
判断链表是否有环为leetcode-141题
提供两种解题方法,如下:
方法一:哈希表
遍历所有节点,每次遍历一个节点时,判断该节点此前是否被访问过。
如果被访问过,说明该链表是环形链表,并返回True,如果没有,则将该节点加入到哈希表中,遍历完成即可。
代码如下:
方法二:快慢指针
定义两个指针,一快一慢,满指针每一移动一步,快指针每次移动两步,由于快指针比慢指针慢,如果链表有环,则快指针一定会和慢指针相遇。
代码如下:
评论区回复 “121”,七月在线干货组最新升级的《2021大厂最新AI面试题 [含答案和解析, 更新到前121题]》,免费送!
持续无限期更新大厂最新面试题,AI干货资料,目前干货组汇总了今年3月-6月份,各大厂面试题。