算法面试 - 问题记录

  1. python上下文管理器,装饰器?

(1)上下文管理器
知乎链接:https://zhuanlan.zhihu.com/p/24709718

上下文管理器是指在一段代码执行之前执行一段代码,用于一些预处理工作;执行之后再执行一段代码,用于一些清理工作。比如打开文件进行读写,读写完之后需要将文件关闭。又比如在数据库操作中,操作之前需要连接数据库,操作之后需要关闭数据库。在上下文管理协议中,有两个方法enterexit,分别实现上述两个功能。

(2)装饰器
https://foofish.net/python-decorator.html

装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。

  1. spark executor的内存爆满,被yarn资源管理器kill掉,如何解决?
    https://blog.csdn.net/w397090770/article/details/104935712

  2. 阻塞调用,非阻塞调用?
    https://www.zhihu.com/question/19732473

  3. l1和l2的正则的区别,如何选择?
    L2 计算起来更方便,而 L1 在特别是非稀疏向量上的计算效率就很低;
    还有就是 L1 最重要的一个特点,输出稀疏,会把不重要的特征直接置零,而 L2 则不会;
    最后,如之前多次提过,L2 有唯一解,而 L1 不是。

  4. lr的损失函数中为什么要加log?
    最大似然的参数估计,将连乘转为连加,便于计算

  5. AUC的计算公式


    image.png
  6. 给定一个数组,数组长度n未定,可以看成一个数据流,设计一个算法,等概率输出元素,时间复杂度O(n),空间复杂度O(1)
    https://zhuanlan.zhihu.com/p/84556091