
面试Python基础刷题
ERCO123
这个作者很懒,什么都没留下…
展开
-
【剑指offer】剑指 Offer 32 - II. 从上到下打印二叉树 II
剑指 Offer 32 - II. 从上到下打印二叉树 II # 此题利用了 python 的 双端队列deque,其 popleft方法可达到 O(1)的时间复杂度 class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: if not root:return [] res,queue = [],collections.deque() queue.appen原创 2021-03-18 22:32:46 · 152 阅读 · 0 评论 -
【面试Python基础刷题】如何判断链表有环?
方法一、穷举遍历 时间复杂度是 O(N *2), 空间复杂度是 O(1)的 方法二、哈希表缓存 时间复杂度是O(N),空间复杂度是 O(N)的 方法二、快慢指针法 时间复杂度是O(N),空间复杂度是 O(1)的原创 2020-10-05 01:21:36 · 176 阅读 · 0 评论 -
面试官如何判断面试者的机器学习水平
参考原创 2020-10-05 01:11:59 · 137 阅读 · 0 评论 -
【面试算法基础刷题】xgboost相关
XGboost 算法的特点: XGboost 将树模型的复杂度加入到正则化项中,从而避免过拟合,泛华性能好 损失函数是用泰勒展开式展开的,用到了一阶导和二阶导,可以加快优化速度 在寻找最佳分隔点时,采用近似贪心算法,用来加速计算 不仅支持CART作为基分类器,还支持线性分类器,在使用线性分类器的时候可以使用L1,L2正则化 支持并行计算,XGBoost的并行是基于特征计算的并行,将特征列排序后 block 的形式存储在内存中,在后面的迭代过程中反复使用这个结构。在进行节点分裂时,计算每个特征的增益,选择增.原创 2020-10-05 01:10:11 · 186 阅读 · 0 评论 -
【面试Python基础刷题】赋值、浅拷贝和深拷贝区别
参考 区别 【直接赋值】:其实就是对象的引用(别名)。 【浅拷贝(copy)】:拷贝父对象,不会拷贝对象的内部的子对象。 【深拷贝(deepcopy)】:copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 P.S:在进行介绍复制、浅拷贝、深拷贝前,我们还要了解下可变对象(dict/list/set)、不可变对象(int/str/float/tuple)。 补充:可变对象、不可变对象 【可变对象】:当有需要改变对象内部的值的时候,这个对象的id不发生变化。 【不可变对象】:当有需要.原创 2020-10-05 00:45:35 · 298 阅读 · 0 评论 -
【面试Python基础刷题】python垃圾回收机制 Garbage collection(GC)
参考 现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。 对于一个字符串、列表、类甚至数值都是对象,且定位简单易用的语言,自然不会让用户去处理如何分配回收内存的问题。 python里也同java一样采用了垃圾收集机制,不过不一样的是: python采用的是引用计数机制为主,标记-清除和分代收集两种机制为辅的策略 引用计数机制的优点: 简单 实时性:.原创 2020-10-05 00:27:58 · 250 阅读 · 0 评论 -
【面试Python基础刷题】python迭代器、生成器、装饰器
1. 迭代器 参考 什么是迭代器: 迭代器,英文 Iterator,它首先是个对象,其次它是访问可迭代序列(Iterable)的一种方式。通常其从序列的第一个元素开始访问,直到所有的元素都被访问才结束。 迭代器又是一个特殊的对象,特殊在于它必须实现两个方法: __ iter__和__next__. 迭代器的几个特点: 是有去无回的,迭代器只能前进不能回退!也就是说一旦迭代结束,要想再使用此迭代器对象从头开始遍历元素,将是不可行的! 迭代器无需提前知道整个列表的所有元素, 无需加载所有.原创 2020-10-05 00:21:03 · 804 阅读 · 2 评论