对于一般的机器学习求职者而言,最基础的就是掌握 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、牛客网就比较简单了。

欢迎关注磐创博客资源汇总站:http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:http://pytorch.panchuang.net/

百道Python面试题实现,搞定Python编程就靠它的更多相关文章

  1. Python 五个知识点搞定作用域

    Python 五个知识点搞定作用域 1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? #块级作用域 if 1 == 1: name = "lzl" print(na ...

  2. 转载 12步轻松搞定python装饰器

    作者: TypingQuietly 原文链接: https://www.jianshu.com/p/d68c6da1587a 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定pyt ...

  3. Python高级特性: 12步轻松搞定Python装饰器

    12步轻松搞定Python装饰器 通过 Python 装饰器实现DRY(不重复代码)原则:  http://python.jobbole.com/84151/   基本上一开始很难搞定python的装 ...

  4. 12步轻松搞定Python装饰器

    译者:寒寻 译文:http://www.cnblogs.com/imshome/p/8327438.html 原文:https://dzone.com/articles/understanding-p ...

  5. 第4天 | 12天搞定Python,基础语法(下)

    为了方便你的学习,减轻负重,我特意将基础语法分成上下两部分.希望你喜欢这种方式,如果不喜欢,你可以跟我说,反正我是不会改的,哈哈~~. 如果上部分,你还没看的话,先去看<第4天 | 12天搞定P ...

  6. 第10天 | 12天搞定Python,文件操作(超详细)

    在开发系统的过程中,经常会用到XML存储和传输数据,XML是一种用于标记电子文件使其具有结构性的标记语言,在博客中经常会见到. JSON是一种轻量级的数据交换格式,常被用在后端和前端的数据交互上,如你 ...

  7. 第12天 | 12天搞定Python,让excel飞起来

    学了10多天Python基础知识了,是时候来点硬货了,看过<第1天 | 12天搞定Python,告诉你有什么用?>的老铁都知道,Python可用的领域挺多的.只是我长期待在企业,所以只能说 ...

  8. 第1天|12天搞定Python网络爬虫,吃里爬外?

    人力资源部漂亮的小MM,跑来问我:老陈,数据分析和爬虫究竟是关系呀?说实在的,我真不想理她,因为我一直认为这个跟她的工作关系不大,可一想到她负责我负责部门的招聘工作,我只好勉为其难地跟她说:数据分析, ...

  9. 一句话搞定python六剑客

    六剑客 一行搞定六剑客:三个函数:map filter reduce + lambda 切片 推导列表 python最有特点的一行代码,所有代码均可以借用一行代码(目标) 1.map(函数,列表或者字 ...

随机推荐

  1. Javascript学习笔记-基本概念-函数

    ECMAScript 中的函数使用function 关键字来声明,后跟一组参数以及函数体.函数的基本语法如下所示: function functionName(arg0, arg1,...,argN) ...

  2. electron+vue制作桌面应用--自定义标题栏

    electron会默认显示边框和标题栏,如下图 我们来看一下如何自定义一个更加有(gao)意(da)思(shang)的标题栏,例如网易云音乐这种 首先我们要把默认的标题栏删掉,找到主进程中创建窗体部分 ...

  3. jwt的token如何使用

    JWT简介: JWT(JSON WEB TOKEN):JSON网络令牌,JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式在不同实体之间安全传输信息(JSON格式).它是在Web环境下 ...

  4. 借助Redis完成延时任务

    背景 相信我们或多或少的会遇到类似下面这样的需求: 第三方给了一批数据给我们处理,我们处理好之后就通知他们处理结果. 大概就是下面这个图说的. 本来在处理完数据之后,我们就会马上把处理结果返回给对方, ...

  5. linux中的源码安装

    前两天自己在笔记本上装了CentOs版本的虚拟机,接着要装Python3,是源码安装的挺费劲,个人总结了一些源码安装的经验,今天在这里给大家分享一下. 1. 首先准备环境,安装必要的编译工具gcc g ...

  6. 【JDK】JDK源码分析-HashMap(2)

    前文「JDK源码分析-HashMap(1)」分析了 HashMap 的内部结构和主要方法的实现原理.但是,面试中通常还会问到很多其他的问题,本文简要分析下常见的一些问题. 这里再贴一下 HashMap ...

  7. ClassLoader&双亲委派&类初始化过程

    1.class sycle 类加载的生命周期:加载(Loading)–>验证(Verification)–>准备(Preparation)–>解析(Resolution)–>初 ...

  8. 小白的docker极简入门(二)、5分钟教你玩转docker安装

    0-前言 上一篇中,我们已经安装后Linux了,我们需要在Linux下安装docker,然后才能在docker中安装和部署各种应用 同样,5分钟教你完成docker正确安装和使用, 不是纸上谈兵,不是 ...

  9. javaScript 基础知识汇总(七)

    1.数组 特点:数组是可以存储有序集合的对象. 声明: let arr = new Array();   let arr=[]; 大多数情况下我们使用第二种. let fruits = [" ...

  10. Openstack计算Nova组件

    欢迎来到虚拟机的世界,如果我们将Openstack环境里运行在各个无力节点上的各种服务看座生命体,而不是死的指令集合,那么就是一个虚拟机的世界. Openstack的计算组件,也就是Nova项目实现了 ...