面试中的 50 大动态编程编码问题
以下是动态编程的前 50 名常见面试问题列表的集合。本文中的问题分为三个级别,以便读者根据难易程度逐步练习。
1级
- 第 N 个加泰罗尼亚数字
- 最小操作
- 重复删除回文子字符串后删除字符串的最小步骤
- 最少硬币数量
- 切断绳索时的最大产品
- 覆盖距离的方法
- 将一个字符串转换为另一个字符串的最小删除和插入次数
- 最小和子序列,使得每四个连续元素中至少有一个被选中
2级
- 子集和问题
- 最长公共子序列
- 最长递增子序列
- 编辑距离
- 矩阵中的最长路径
- 游戏的最佳策略
- 0-1 背包问题
- 最短公共超序列
- 分区问题
- 棒材切割
- 硬币兑换问题
- 断字问题
- 掷骰子问题
- 盒子堆叠
- 鸡蛋掉落拼图
- 最大长度链条
- 最长公共子串
- 交错的字符串
- 最大和增加子序列
- 最少跳跃次数
- 计算类型 a^i、b^j、c^k 的子序列
- 获取最小平方
- 第 N 个斐波那契数
- 最长回文子串
- 总解码消息
- 独特的 BST
- 得分最高的球员
- 形成一个回文
- 自动换行问题
- 计数回文子序列
- 在不跳过两个连续任务的情况下完成任务的最短时间
3级
- 最小分区
- 布尔括号问题
- 矩阵链乘法
- 最长之字形子序列
- 最大利润
- 最低成本路径
- 画家的分区问题
- 回文分区
- 阵列分区
- 二进制字符串中零和一的最大差异
- 计算数字的数字分组
相关文章: