c - C 中的动态编程资源?

标签 c algorithm dynamic-programming

作为新生,我明天将参加在线 Google 测试。显然,他们肯定会问一个关于动态规划的问题?

有人知道用 C 语言收集 DP 问题及其解决方案的好资源吗?我知道 DP 是什么并且曾经用过一两次。但是我觉得在测试中破解DP问题,之前典型问题的实践会更容易接近。

任何具有 C 语言解决方案的良好资源或问题集都将受到高度赞赏。谢谢。

最佳答案

好的,所以我真的希望这不会算作“无耻的 self 推销”,因为所有这些链接都指向我在个人网站上发布的代码片段。如果这不合适,请告诉我,我可以将其删除。

以下是一些非常经典的有趣 DP 问题:

  1. 最小编辑距离:给定两个字符串 A 和 B,找出将 A 转换为 B 所需的最短编辑次数(插入、删除或替换)。这称为 Levenshtein 距离。 (My solution)
  2. 最佳序列比对:给定两个字符串 A 和 B,找到必须插入序列以对齐 A 和 B 的最小间隙数。这称为 Needleman-Wunsch 算法。 (My solution)
  3. 单源最短路径:给定一个有向图 G 和一个节点 s,找出从 s 到图中每个其他节点的最短路径的长度,假设边可以是正的或负的,但不存在循环。这就是 Bellman-Ford 算法。 (My solution)
  4. 所有对最短路径:给定一个有向图 G,找出所有节点对之间的最小距离。这就是 Floyd-Warshall 算法。 (My solution)

希望这对您有所帮助,祝您明天好运!

关于c - C 中的动态编程资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4638265/

相关文章:

c - 在这种情况下,无限递归调用应该引发堆栈溢出吗?

c - 让线程休眠 (c pthreads)

algorithm - 使用 Perlin Noise 生成瓦片 map 的基本问题

algorithm - 重量平衡器算法

c++ - C和C++中存储和显示的地址有什么区别?

c - 编写一个函数来分割字符串

java - 这两种冒泡排序算法有什么区别?

algorithm - kd-tree 是否适用于 4D 时空数据 (x,y,z,time)?

dynamic-programming - DP问题,连续线段的最佳分割

java - 如何修改 Rod-Cutting 问题以采用增加超过 1 的尺寸