36、AC自动机:如何用多模式串匹配实现敏感词过滤功能?很多支持用户发表文本内容的网站,比如BBS,大都会有敏感词过滤功能,用来过滤掉用户输入的一些淫秽、反动、谩骂等内容。你有没有想过,这个功能是怎么实现的呢? 实际上,这些功能最基本的原理就是字符串匹配算法,也就是通过维护一个敏感词的字典,当用户输入一段...2025-10-30数据结构与算法之美
37、贪心算法:如何用贪心算法实现Huffman压缩编码?基础的数据结构和算法我们基本上学完了,接下来几节,我会讲几种更加基本的算法。它们分别是贪心算法、分治算法、回溯算法、动态规划。更加确切地说,它们应该是算法思想,并不是具体的算法,常用来指导我们设计具体的算法和编码等。 贪心、分治、回溯、动态规划这4个...2025-10-30数据结构与算法之美
38、分治算法:谈一谈大规模计算框架MapReduce中的分治思想MapReduce是Google大数据处理的三驾马车之一,另外两个是GFS和Bigtable。它在倒排索引、PageRank计算、网页分析等搜索引擎相关的技术中都有大量的应用。 尽管开发一个MapReduce看起来很高深,感觉跟我们遥不可及。实际上,...2025-10-30数据结构与算法之美
39、回溯算法:从电影《蝴蝶效应》中学习回溯算法的核心思想我们在[第31节]提到,深度优先搜索算法利用的是回溯算法思想。这个算法思想非常简单,但是应用却非常广泛。它除了用来指导像深度优先搜索这种经典的算法设计之外,还可以用在很多实际的软件开发场景中,比如正则表达式匹配、编译原理中的语法分析等。 除此之外,很...2025-10-30数据结构与算法之美
40、初识动态规划:如何巧妙解决“双十一”购物时的凑单问题?淘宝的“双十一”购物节有各种促销活动,比如“满200元减50元”。假设你女朋友的购物车中有n个(n>100)想买的商品,她希望从里面选几个,在凑够满减条件的前提下,让选出来的商品价格总和最大程度地接近满减条件(200元),这样就可以极大限度地“...2025-10-30数据结构与算法之美
41、动态规划理论:一篇文章带你彻底搞懂最优子结构、无后效性和重复子问题上一节,我通过两个非常经典的问题,向你展示了用动态规划解决问题的过程。现在你对动态规划应该有了一个初步的认识。 今天,我主要讲动态规划的一些理论知识。学完这节内容,可以帮你解决这样几个问题:什么样的问题可以用动态规划解决?解决动态规划问题的一般思考过...2025-10-30数据结构与算法之美