终结DP(动态规划)之路(前言)

274 阅读1分钟

由于硅谷FLAG等公司面试普遍考算法(数据结构和算法,不是机器学习算法,两者不一码事儿),到近年来国内互联网头部公司也慢慢跟进,不论校招社招,都考算法,导致在求职的时候也不得不花点时间复习下算法内容,不至于在技术面聊的风生水起之后,在笔试环节卡壳。出于此目的,需要把算法中的一类特殊问题:动态规划给复习一下,以备不时之需。

我的思路是准备写一个系列文章,把动态规划的初级内容给科普一下(同时作为自己的笔记和回顾来用),只针对普通面试的难度,不做过多的研究,整体上对DP有一个初步的整体的认识就可以了。在难度方面不设门槛,哪怕是完全不知道动态规划这回事儿的人,也能够看懂,慢慢形成系统的认识,那么这一系列文章的目的就达到了。

针对动态规划类题目的细致分类,沿用LeetCode上一位coder的分类,分为:

  • Minimum (Maximum) Path to Reach a Target 最短(最长)路径
  • Distinct Ways 到达目标的不重复的方式数目
  • Merging Intervals 区间合并
  • DP on Strings 动态规划在字符串的应用
  • Decision Making 取舍决策(当前元素是取还是舍)

第一篇:最短最长路径