LeetCode精选

a38871 2 0 zip 2024-10-03 00:10:39

股票买卖最佳时机leetcode算法动态规划是一种通过将某些类型的复杂问题分解为更简单的子问题,并只解决每个子问题一次来有效解决某些类型的复杂问题的技术。动态规划将子问题的结果存储在一个表中,并在需要时重用它们,以避免一次又一次地解决相同的子问题。可以使用DP解决的问题类型有最优子结构重叠子问题

  • 最优子结构:如果可以使用其子问题的最优解来获得给定问题的最优解,或者换句话说,如果我们可以使用基于其子问题的递推关系来定义问题的解,则给定问题具有最优子结构属性。

  • 重叠子问题:一个给定的问题具有重叠的子问题属性,如果要解决这个问题,我们必须多次解决它的子问题。

动态规划有两种解决方法:

  1. 自上而下的方法(记忆):使用递归和缓存实现。每当递归函数被调用时,我们检查缓存以查看问题是否已经解决。如果已经解决,则从缓存中返回结果,否则解决子问题,将结果保存在缓存中并返回。

  2. 自下而上的方法(制表或表格填充方法)。

用户评论
请输入评论内容
评分:
暂无评论