百道Python面试题实现,搞定Python编程就靠它

机器之心报道

机器之心编辑部

想要备战 Python 面试,这两个项目有千道 Python 问题与实现。

之前机器之心介绍了 PHD 大牛的求职之路,很多读者感觉这位大牛太厉害了,他的经历对我们帮助不大。对于一般的机器学习求职者而言,最基础的就是掌握 Python 编程技巧,随后才是相关算法或知识点的掌握。在这篇文章中,我们将介绍一个 Python 练习题项目,它从算法练习题到机试实战题提供了众多问题与解决代码。

在春招之前,我们就曾介绍过 GitHub 万星的 ML 算法工程师面试指南,它提供了完整的面试知识点、编程题及题解、各科技公司的面试题锦等内容。读者可查阅该项目了解机器学习面试需要准备哪些知识。

项目地址:https://github.com/imhuay/Algorithm_Interview_Notes-Chinese

在这个 2W+ 收藏量的 GitHub 项目中,作者前一部分主要介绍了机器学习及各子领域的知识点。其中每一个知识点都只提供最核心的概念,如果读者遇到不熟悉的算法或者遇到知识漏洞,可以进一步阅读相关文献。后一部分则重点介绍了怎样搞定编程面试题,包括各种数据结构和排列组合相关的题目。

一般而言,第一部分的基础知识是长期积累的结果,但对于后面的 Python 面试题,我们可以通过刷题快速提升解题水平。这篇文章重点在于介绍两个 Python 面试题项目,它们提供了大量 Python 问题与解题代码。

面试怎么做

在进入 Python 题海之前,我们还是先要了解了解面试流程。面试形式和过程大致如下:

  • 电话筛选(隐形的现场面试):这个过程一般由 HR 完成,如果是技术人员负责,这个过程一般都很短。
  • 技术面试:你将和实际开发人员进行这一轮面试,在这期间他们会深入了解你的知识背景。
  • 技术评估/homework 编程/结对编程:一般而言,如果一家公司的面试有结对编程环节,那绝对是加分的。homework 编程也能理解,但绝大多数情况下这都是在浪费每个人的时间,也无法正确评估技术水平。
  • 最终面试:和团队其他成员见面,如果这是一家小公司的话,这一轮面试你面对的可能是创始人(们)。
  • 发放 offer。

当然,每家公司都会有所不同,这只是你在找工作的过程中可能经历的大致过程。一般技术面试考察的是我们的背景知识,而技术评估则需要语言解决实际问题了。本文的这两个项目,可以让你搞定公司的技术评估,当然其实目前很多书籍与网站都在解决这个问题,例如剑指 Offer 和 LeetCode 等等。

Interview-code-practice-python

首先在第一个项目中,作者给出了 2017 校招真题、剑指 offer、华为机试、机试题和直通 BAT 算法题等各种 Python 实现,它们共计 200 道左右。

项目地址:https://github.com/leeguandong/Interview-code-practice-python

如下展示了剑指 offer 文件夹包含的实现文档,每一个问题都是单独的 Python 文件:

整个项目有很多有意思的题目,例如「变态青蛙跳.py」包含的题目与题解代码为:

「合唱团.py」内的代码如下:

The Algorithms - Python

第二个项目是更流行的一个 Python 代码库,它目前有 2.4W+的星。该项目实现的各种算法都是用纯 Python 完成的,它希望更简介地展示这些问题怎样解决,因此相比 Python 标准库中实现的方法可能效率不那么高。

项目地址:https://github.com/TheAlgorithms/Python

目前该项目展示的解决方案主要有:

  • 排序
  • 搜索
  • 数学
  • 算法分析
  • 二元树
  • 数据结构
  • 图像处理
  • 动态规划
  • 线性代数
  • 机器学习
  • 哈希
  • ……

这个项目的算法实现非常多,我们可以根据实际需要选择具体的类别,并查看给出的解决方案。如果我们希望了解排序算法,那么选择排序后我们大概能看到近 30 种不同的排序实现:

其中,在算法入门第一课「bubble_sort.py」中,该项目给出的冒泡排序解决方案为:

该项目提供的实现很多都非常底层,在「Math」中,我们可以了解到如何实现绝对值求解、求最大最小值等等,当然也可以了解到矩阵乘法是如何实现的。该项目其实对面试很有帮助,虽然它并不是直接解决特定的某个问题,但是复现一般的 Python 函数或者基本问题对于理解 Python 很有帮助。

综合以上两个 Python 实现项目,不论是解题技巧,还是对 Python 的理解,我们的实战能力都会有很大的提升。就像理解神经网络最好的方法是用纯 NumPy 实现一遍,理解 Python 的最好方法即过一遍基本函数与结构。有了充足的理解,再看看面试真题或在 LeetCode、牛客网就比较简单了。

本文分享自微信公众号 - 小詹学Python(xiaoxiaozhantongxue)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

腾讯提前批机器学习+快手算法岗

3、问了比赛中一些细节,比如说如何处理特征,如何评价特征根据什么添加特征、损失函数是什么;

19700
来自专栏FSociety

基于PyTorch实现MNIST手写字识别

本篇不涉及模型原理,只是分享下代码。想要了解模型原理的可以去看网上很多大牛的博客。

38620
来自专栏JavaEdge

基于Spark的机器学习实践 (十) - 降维

通过讲解PCA算法的原理,使大家明白降维算法的大致原理,以及能够实现怎么样的功能。结合应用降维算法在分类算法使用之前进行预处理的实践,帮助大家体会算法的作用。

11400
来自专栏程序生活

斯坦福tensorflow教程(八) 计算机视觉和卷积网络简介

卷积不是一个新的概念,在很早以前的索贝算子就应用到,在影像处理及电脑视觉领域中常被用来做边缘检测

10310
来自专栏iOSDevLog

ARKit+Swift 版本的机器学习算法 k-NN

在模式识别领域中,最近邻居法(KNN算法,又译K-近邻算法)是一种用于分类和回归的非参数统计方法[1]。在这两种情况下,输入包含特征空间(Feature Spa...

9900
来自专栏中科院渣渣博肆僧一枚

基于Fast R-CNN的FPN实现方式及代码实现细节(未完待续)

        基于传统的方法,先要进行区域建议的生成,然后对每个区域进行手工特征的设计和提取,然后送入分类器。在Alexnet出现后,CNN的性能比较好,不但...

28700
来自专栏JavaEdge

基于Spark的机器学习实践 (九) - 聚类算法

而且,它们都使用聚类中心来为数据建模;然而k-平均聚类倾向于在可比较的空间范围内寻找聚类,期望-最大化技术却允许聚类有不同的形状。

15220
来自专栏杨熹的专栏

【机器学习知识体系】- 机器学习问题的一般流程

今天开始会陆续将之前的文章做一下梳理,整理出一个完整的知识体系,有需要的伙伴们可以更方便地查找自己需要的知识点。

13600
来自专栏程序员的知识天地

大牛推荐的6本机器学习经典必读书

周老师这本书用来当教材确实不错,不过自学的话跟李航老师的《统计学习方法》来比,确实不够详细,但周老师的书广度上要更加广泛。

15800
来自专栏程序员的知识天地

Python机器学习工具&库,再也不怕找不到工具了

用Python搞机器学习、数据科学,需要很多相关的资料,各种库、工具,都是常用、常找、常查的内容。

11600

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励