对于一般的机器学习求职者而言,最基础的就是掌握 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. CSS——NO.7(布局模型)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  2. 查看网卡信息 - ethtool

    查看网卡是千兆还是万兆网卡,使用ethtool 网络接口名 ethtool eth0

  3. pyteeseract使用报错Error: one input ui-file must be specified解决

    Python在图像识别有天然的优势,今天使用pytesseract模块时遇到一个报错:“Error: one input ui-file must be specified”. 环境:windows ...

  4. 微信小程序开发,如何优雅地兼容

    小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容. 关于单个 API 如何兼容,微信官方提供了兼容文档,因此我们这里不再赘述.下面主要讨论在整个项目如 ...

  5. 前端每日实战:132# 视频演示如何用纯 CSS 创作一只思考的手

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/WgdVyx/ 可交互视频 此视频是 ...

  6. 自定义checkbox, radio样式总结

    任务目的 深入了解html label标签 了解CSS边框.背景.伪元素.伪类(注意和伪元素区分)等属性的设置 了解CSS中常见的雪碧图,并能自己制作使用雪碧图 任务描述 参考 样例(点击查看),实现 ...

  7. 快速上手 Python 命令行模块 Click

    关于Click? 说下 Click 模块是干啥的,简单说,它就是把我们的 Python 脚本的一些函数,通过 添加带有 Click 关键字的装饰器进行装饰进而将函数调用的形式转化为命令行传参的形式然后 ...

  8. Generator的异步编程

    对比下常用的异步处理的方案: 1,回调 我们常说的 “回调地狱”,就是多个异步操作时候,代码多重嵌套,异步之前形成强耦合,如果修改一处,其他地方也是跟着修改.(callback hell). 2,pr ...

  9. Hadoop fs 基础命令

    操作hdfs的基本命令 在hdfs中,路径需要用绝对路径 1. 查看根目录 hadoop fs -ls / 2. 递归查看所有文件和文件夹 -lsr等同于-ls -R hadoop fs -lsr / ...

  10. c#语言 中FileStream类的基本使用

    FileStream类不是静态类,使用时需要创建对象,FileStream类既可以对文本文件进行读也可以对多媒体文件进行写,以字节数组的形式进行读和写,多用于对大文件进行读写,区别于File类的是它对 ...