年月份道伴鱼算法岗面试题
合并重叠区间,也就是那个最大不重叠区间的题目的变种。面试官会让你看题先整理思路,然后分析复杂度,最后面试官觉得你的思路OK就放你在远程连接上手撕代码
链接: https://leetcode-cn.com/problems/merge-intervals/
- 1.过拟合和欠拟合。
- 2.python多进程
- 3.python深浅拷贝
~ 文末有福利 ~
解题思路:
- 先对输入数组按照区间左边的值进行升序排列
- 初始化一个变量 res,用于存储合并直接的区间结果
- 遍历排序后的所有区间,针对每个区间做如下的处理:
如果当前处理的区间是第一个区间的话,那么直接将区间加入到 res
比较当前处理区间左边的值 i[0] 和 res 中最后一个区间右边的值 res[-1][1]:
如果 res[-1][1] < i[0],说明没有重叠,那么直接将当前处理的区间加入 res
否则,说明有重叠,那么将 res 中最后一个区间的右边的值更新为:当前处理区间右边值 i[1] 和 res 中最后一个区间右边的值 res[-1][1] 的最大值.
1.过拟合和欠拟合?
- 过拟合:是指训练误差和测试误差之间的差距太大。换句换说,就是模型复杂度高于实际问题,模型在训练集上表现很好,但在测试集上却表现很差。
- 欠拟合:模型不能在训练集上获得足够低的误差。换句换说,就是模型复杂度低,模型在训练集上就表现很差,没法学习到数据背后的规律。
- 如何解决欠拟合?
欠拟合基本上都会发生在训练刚开始的时候,经过不断训练之后欠拟合应该不怎么考虑了。但是如果真的还是存在的话,可以通过增加网络复杂度或者在模型中增加特征,这些都是很好解决欠拟合的方法。
- 如何防止过拟合?
获取和使用更多的数据(数据集增强)、降低模型复杂度、L1\L2\Dropout正则化、Early stopping(提前终止)
- 现在有个模型欠拟合,增加模型深度能改善吗?
可以下判断神经网络的拟合能力是否足够:使用少量数据训练模型,让每个epoch或者每个batch都是相同的数据,然后观察训练的loss和accuracy,如果发现loss下降并且accuracy上升了,训练结束后可以正确预测训练数据,那么可以确定是模型的拟合能力不足,无法拟合全部的训练数据,此时可以增加模型的深度,增强网络的拟合能力。
2.python多进程
线程
是操作系统中进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程可以有多个线程,每条线程可以同时执行不同的任务。一个线程可以看作一个cpu执行时所需要的一串指令。
多线程
在Python的标准库中提供了两个模块:_thread和threading,_thread是低级模块不支持守护线程,当主线程退出时,所有子线程都会被强行退出。而threading是高级模块,用于对_thread进行了封装支持守护线程。在大多数情况下我们只需要使用threading这个高级模块即可。
进程:
进程指的是一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调用的独立单位。也就是每一个应用程序都有一个自己的进程。进程在启动时都会最先产生一个线程,这个线程被称为主线程,然后再有主线程创建其他子线程
多进程:
多进程是multiprocessing模块提供远程与本地的并发,在一个multiprocessing库的使用场景下,所有的子进程都是由一个父进程启动来的,这个父进程成为madter进程,它会管理一系
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek/post/%E4%BA%92%E8%81%94%E7%BD%91/%E5%B9%B4%E6%9C%88%E4%BB%BD%E9%81%93%E4%BC%B4%E9%B1%BC%E7%AE%97%E6%B3%95%E5%B2%97%E9%9D%A2%E8%AF%95%E9%A2%98/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com