购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

党的二十大报告指出:教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。高等教育与经济社会发展紧密相连,对促进就业创业、助力经济社会发展、增进人民福祉具有重要意义。

在现代社会中,算法已经广泛应用于计算机科学的各个领域,如人工智能、数据挖掘、网络安全和生物信息学等。许多成功的案例都证明了算法的重要性和实用性,如搜索引擎的优化、社交网络的推荐系统、医疗诊断的辅助决策等。算法知识和技能对于程序员来说至关重要。算法面试是许多科技公司招聘过程中必不可少的一环,它考查的是候选人的编程能力、思维逻辑、问题解决能力以及算法设计技巧。通过算法面试,候选人可以展示自己的技能和知识,提升自己在求职市场上的竞争力。

LeetCode是一个在线刷题平台,提供了大量的算法题目供用户练习,帮助用户加深对数据结构与算法的理解和掌握。LeetCode于2011年诞生于美国硅谷,2018年2月由上海领扣网络引入中国并正式命名为力扣,其中文网站于同月测试上线,2018年10月力扣全新改版,更加注重于学习体验。许多北美大厂(如谷歌、微软和亚马逊等)在面试中都涉及算法及其相关知识,甚至直接从LeetCode出题(许多北美程序员从实习到全职,再到跳槽,一路上都在刷LeetCode)。国内大厂近几年也越来越重视对算法的考查,如腾讯、百度、华为和字节跳动等都是较看重算法面试的公司。

本书提供一系列编者精心挑选的LeetCode问题,覆盖不同难度级别和C++/Python编程语言,旨在帮助读者提高编程技能和更深入地理解数据结构与算法的原理,以应对算法面试中的挑战。

本书内容

本书共25章,分为三部分。

第一部分(第1~14章)为数据结构及其应用,以常用数据结构为主题,深入讲解各种数据结构的应用方法和技巧,包含数组、链表、栈、队列和双端队列、哈希表、二叉树、二叉搜索树、平衡二叉树、优先队列、并查集、前缀和与差分、线段树、树状数组、字典树和后缀数组等。

第二部分(第15~22章)为算法设计策略及其应用,以基本算法设计方法和算法设计策略为主题,深入讲解各种算法设计策略的应用方法和技巧,包含穷举法、递归、分治法、DFS、BFS和拓扑排序、回溯法、分支限界法、A*算法、动态规划和贪心法等。

第三部分(第23~25章)为经典问题及其求解,以实际面试中的一些问题为主题,深入讲解这些问题的多种求解方法,对比分析不同方法的差异,包含跳跃问题、迷宫问题和设计问题等专题。

本书特色

(1)全面覆盖:本书对算法面试中可能涉及的各种主题进行了较为全面的覆盖,包括各种基础数据结构和常用的算法设计策略。

(2)实战导向:书中精选的许多LeetCode题目都是国内外互联网大厂的热门算法面试题,具有很强的实战性。

(3)知识的结构化:本书以数据结构和算法策略为主线,划分为若干知识点,通过实例和问题求解将相关的知识点串起来构成知识网络,不仅可以加深读者对算法原理的理解,而且可以拓宽读者对算法应用的视野。

(4)求解方法的多维性:同一个问题采用多种算法策略实现,如迷宫问题采用回溯法、分支限界法、A*算法和贪心法求解等。通过对不同算法策略的比较,使读者更容易体会每种算法策略的设计特点和优缺点,以提高算法设计的效率。

(5)代码的规范化:书中代码采用C++和Python语言编写,不仅在LeetCode平台上提交通过,而且进行了精心的代码组织和规范化,包括变量名称和算法策略的统一与标准化等,尽可能提高代码的可读性。

注:书中以LeetCode开头+序号的题目均来自LeetCode平台。

如何刷题和使用本书

在互联网上和力扣平台上有许多关于LeetCode刷题经验的分享,读者可以酌情参考。编者建议读者在具备一定的数据结构和算法基础后按本书中的专题分类刷题,先刷数据结构部分后刷算法部分,先刷简单题目后刷困难题目(书中题目按难度分为3个级别,即★、★★和★★★,分别对应简单、中等和困难),在刷题时要注重算法思路和算法实现细节,每个环节都要清清楚楚,并能够做到举一反三,同时将自己在线提交的结果与书中的时间和空间进行对比分析(值得注意的是书中列出的时间和空间是编者提交的结果,后面因环境的变化可能有所不同)。另外,经常进行归纳总结和撰写解题报告是提高编程能力的有效手段。在没有对一道题目进行深入思考和分析之前就阅读书中的代码部分甚至是复制、粘贴代码,这种做法不可取。总之,使用良好的刷题方法并且持之以恒,一定会收获理想的效果。

致谢

本书以LeetCode为平台,书中所有LeetCode题目及其相关内容都得到领扣网络(上海)有限公司的授权。本书的编写得到清华大学出版社魏江江分社长的大力支持,王冰飞老师给予精心编辑。本书在编写过程中参考了众多博客和LeetCode题解评论栏目的博文,编者在此一并表示衷心的感谢。

作者
2024年8月 nhi1AYwcFzKmp5Y9RDqRvXUoM4SCAu9xsqWNrVqhJ0X9+BOJhZbo3CeQ4lGoq/py

点击中间区域
呼出菜单
上一章
目录
下一章
×