Project Icon

python-coding-interview

实用算法与编程面试解决方案

这本开源书籍为中高级程序员提供全面的算法和编程面试准备。内容包括数据结构、算法原理、经典算法及面试问题模式,并配有精简的Python实现。所有练习和示例源自LeetCode,结合设计原理详解算法。本书致力于展现算法问题解决的魅力,旨在增强读者的软件工程能力。

算法问题解决实践

一本100%开源的一站式编程面试准备书!


数据结构与算法 · Python · LeetCode · 原理 · 问题模式

   
🔥  GitHub上顶级数据结构与算法仓库之一


贡献

本书使用LaTeX编写,除代码外的所有内容都位于Easy-Book文件夹中。欢迎向我发送拉取请求以贡献内容。在开始改进内容之前,了解本书的高层结构会很有帮助。更多详情请阅读如何贡献?

所有贡献者(有相当数量贡献)将被列为项目作者。


关于本书

book_structure

简而言之,这是一本以破解编程面试为核心的中高级算法书。它提供了一站式的编程面试准备体验。本书结构如下:

  • 准备:介绍算法问题解决和编程面试的全局图景,学习抽象数据结构和高度相关且有用的数学知识如递归关系,并通过将抽象数据结构与Python数据结构联系起来进行Python实践。编程不仅仅是代码。
  • 原理:我们在这里组织设计和原理,以便读者可以将其作为指导,而不是寻找解决问题的特殊算法。
  • 经典算法:我们通过学习如何将核心原理应用于各种经典问题来增强我们的算法数据库。一个我们在看到问题时可以快速联系的数据库。
  • 编程面试问题模式:我们以分析和分类问题模式来结束本书。我们针对每种问题模式讨论经典和最佳解决方案。

除了努力使内容易于理解外,以下总结了本书的独特之处:(1)它提供了专门为面试设计的简单Python源代码 (2)所有练习和示例都来自LeetCode问题,因此你可以在线练习 (3)经典算法都用设计原理进行解释。没有算法是魔法。(查看高级图算法作为例子) (4)问题模式帮助你逐主题解决编程面试问题。


我是如何想到写这本书的?

准备编程面试并不容易!破解编程面试?对我们大多数人来说几乎是不可能的!运气确实在结果中起作用。所以,让我们把它当作一个学习过程,并从中获得乐趣吧!

计算机科学实际上不仅仅是计算机科学。它是所有领域的结合;我们常见的面试问题属于枚举组合学范畴,而我们的计算机视觉主要由线性代数组成。真正重要的是我们学习的热情和将这些知识应用于解决实际问题的能力。

市面上有很多书籍要么专注于教授算法知识(《算法导论》、《算法问题解决》等),要么介绍面试过程和解决面试问题(《破解编程面试》、《编程面试题》等),但没有一本书真正将两者结合起来。这本书的设计就是为了填补这个分类中的空白。原理、模式和LeetCode问题构成了本书的核心。

不是一本提供每家公司招聘统计数据或给读者快速技巧以通过几次编程面试的书。它的目的是向你展示算法问题解决的美,希望你能对软件工程更有热情和信心;面试问题只是提供了一个让我们强化所学知识的平台。


致读者

整本书已编译为PDF格式。

读者可以整本阅读,也可以按以下链接选择性地阅读章节。

目录


热身:抽象数据结构和工具

入门:编程和Python数据结构

核心原则:算法设计与分析

高级算法

问题模式

  • 动态规划问题(15%)
  • 数组问题(15%)
  • 链表、栈、队列和堆问题(12%)
  • 字符串问题(15%)
  • 树问题(10%)
  • 图问题(15%)

注:所有内容仍在进行中,请谨慎使用。


参考书籍和资料

  • Skiena, Steven S. 《算法设计手册》第1卷. Springer Science & Business Media, 1998.

  • T. H. Cormen, 《算法导论》, MIT press, 2009.

  • Manber, Udi. 《算法入门:创造性方法》. Addison-Wesley Longman Publishing Co., Inc., 1989.

  • Kleinberg, Jon, 和 Eva Tardos. 《算法设计》. Pearson Education India, 2006.

  • Russell, Stuart J., 和 Peter Norvig. 《人工智能:现代方法》. Malaysia; Pearson Education Limited,, 2016. (解释搜索问题求解、区分树搜索和图搜索的最佳书籍)

  • D. M. Beazley, 《Python参考手册》, Addison-Wesley Professional, 2009.

  • S. Halim 和 F. Halim, 《竞争性编程3》, Lulu Independent Publish, 2013.

  • B. Slatkin, 《Effective Python:编写高质量Python代码的59个有效方法》, Pearson Education, 2015.

  • H. hua jiang, "Leetcode博客," https://zxi.mytechroad.com/blog/category, 2018, [在线访问日期:2018年7月19日].

  • B. Baka, "Python数据结构和算法:通过图、栈和队列提高应用性能," 2017.

  • "竞争性编程,"https://cp-algorithms.com/, 2019, [在线访问日期:2018年7月19日].

  • "普林斯顿计算机科学,"https://aofa.cs.princeton.edu/60trees/, 2019, [在线访问日期:2018年7月19日]

  • https://stanford-cs161.github.io/winter2021/schedule/


工具


模拟面试

实践很重要。在interviewing.io上安排一些模拟面试。如果你无法注册,可以加入我们的Discord服务器,寻找同伴进行练习面试。


社区

加入我的Discord服务器:https://discord.gg/ZXnSag7fMP,获得支持性社区


反馈

如果你有改进本书的想法,无论是关于格式、更多内容,还是纠正错误,请随时告诉我。

如需引用本内容,请使用:


```bibtex @misc{handsondsa, author = {Li Yin}, title = {实用算法问题解决}, howpublished = {\url{https://github.com/liyin2015/python-coding-interview/}}, year = {2021} } ```
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号